大家好,感谢您的帮助! 首先我告诉你的背景。 我必须做一个Windows 8的通用应用程序,饮料自动售货机模拟器。 我的课程是:
经理(谁创造机器,放入配料和饮料),
VendingMachine(拥有配料和饮料清单,检查是否有足够的饮料等)
含有名称和数量的成分类别,
一个抽象的基类与名称,价格等的饮料和
茶,咖啡和巧克力从饮料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")