C# 在C上使用枚举

C# 在C上使用枚举,c#,windows,class,enums,universal,C#,Windows,Class,Enums,Universal,大家好,谢谢你们的帮助! 首先我告诉你上下文。我必须在一个Windows8通用应用程序上做,一个饮料自动售货机模拟器。 我的课程是: 制造机器并放入配料和饮料的经理 有配料和饮料清单的自动售货机,检查是否还有足够的饮料等 具有名称和数量的配料类 具有名称、价格等的抽象基类,以及 课程包括茶、咖啡和巧克力,他们从饮料中继承并拥有自己的成分列表实例 现在,当我在机器中选择一种饮料时,我会检查每种成分的名称,如果机器上有相同名称的成分,我会检查是否还有剩余的成分,我会服用一种 问题是,添加一种新型饮料

大家好,谢谢你们的帮助! 首先我告诉你上下文。我必须在一个Windows8通用应用程序上做,一个饮料自动售货机模拟器。 我的课程是:

制造机器并放入配料和饮料的经理

有配料和饮料清单的自动售货机,检查是否还有足够的饮料等

具有名称和数量的配料类

具有名称、价格等的抽象基类,以及

课程包括茶、咖啡和巧克力,他们从饮料中继承并拥有自己的成分列表实例

现在,当我在机器中选择一种饮料时,我会检查每种成分的名称,如果机器上有相同名称的成分,我会检查是否还有剩余的成分,我会服用一种

问题是,添加一种新型饮料应该很容易,但是!如果成分的名称不完全相同,它将不起作用。 所以我想做一个枚举,我在机器上做了如下操作:

public enum IngredientsNames
{
  Coffee,
  Tea,
  Chocolate,
  Sugar,
  Milk
}
成分类别为:

class Ingredient
{
    public string name { get; private set; }
    public int amount;
    public Ingredient(string _name)
    {
        name = _name;
    }
}
但问题是,如果我想在自动售货机类中执行以下操作:

IngredientNames.Coffee = "Coffee" ;
上面说

赋值的左侧必须是变量、属性或索引器

说清楚一点,我想说的是,如果有人打开了一个新的饮料类别,并且做了配料,咖啡,它会自动给他一个名字的字符串,他不必自己给这个名字,也不必在之后出错。
我希望我是清楚的。感谢您的帮助,我仍在开始学习。

您可以像这样将字符串值转换为枚举

Ingredients ingredient = (Ingredients)Enum.Parse(typeof(Ingredients), "Coffee"); 
您还可以像这样检查枚举中是否存在这种情况

Enum.IsDefined(typeof(Ingredients), "Coffee") 

如果您也能展示配料类及其构造函数的定义,那么将字符串Coffee解析为配料枚举成员的逻辑就在这里。当某些内容不起作用时,请包含完整的错误消息编译器错误或运行时异常信息。抱歉,我是网站新手,我在帖子中根据您的要求进行了一些编辑检查这是否是您想要做的?提供枚举名称和描述。或者,这对我不起作用,我想给添加新型饮料的用户一个小列表,他可以选择他想要的配料,并返回相应的字符串。这将给enum咖啡一个字符串,我想如果有人添加新型饮料,他可以直接做配料。addMachine.配料。咖啡,当第一个配料时,它是饮料基类上的配料实例列表,在它之后是自动添加名为Coffe的配料类实例的枚举。。我不知道我是否清楚..如果你想创建你的类,枚举应该自动包含它,那它本身就不会发生。枚举值应在编译时已知。但是,请检查此答案,它允许复制此动态枚举场景。要将一个名称空间中所有类的名称放入字典,您可以检查enum不会更改它不是动态的,这里有一个我自己输入的成分列表。我可以把枚举放在配料类中,我只希望枚举中的每个选项都给出配料的实例。假设他做了配料咖啡,就像做配料咖啡=新的IngreditCoffee一样,用户只是不自己做,他不放他想要的东西。已经知道的成分的可能性列表我想知道如何给枚举中的一个选项赋值,比如字符串或对象实例,如果我有枚举{choice1,choice2,choice3},choice1是一个特定的对象,choice2是另一个对象,等等,这是我不知道怎么做的