在C#上使用枚举

大家好,感谢您的帮助! 首先我告诉你的背景。 我必须做一个Windows 8的通用应用程序,饮料自动售货机模拟器。 我的课程是:

  1. 经理(谁创造机器,放入配料和饮料),

  2. VendingMachine(拥有配料和饮料清单,检查是否有足够的饮料等)

  3. 含有名称和数量的成分别,

  4. 一个抽象的基类与名称,价格等的饮料和

  5. 茶,咖啡和巧克力从饮料inheritance,并有自己的成分实例列表。

现在,当我在机器中select一种饮料时,我正在检查每一种成分的名称,如果机器上有一个同名的成分,我正在检查是否有剩余,我正在检查一个成分。

事情是,应该很容易添加一种新的饮料,但(!)如果配料的名称是不完全相同,它将无法正常工作。 所以我想做一个枚举,我做到了这样的机器,如:

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" ; 

它说

“任务的左手边必须是一个variables,属性或索引器”

要清楚的是,我想如果有人打开一个新的types的饮料,并且做Ingredient.Coffee它给他自动string的名字“咖啡”,他不必自己给名字,没有之后出错。 我希望我清楚。 感谢您的帮助,我仍然在这个开始。

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

 Ingredients ingredient = (Ingredients)Enum.Parse(typeof(Ingredients), "Coffee"); 

你也可以像这样检查Enum中是否存在。

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