gpt4 book ai didi

c# - 在 C# 上使用枚举

转载 作者:可可西里 更新时间:2023-11-01 11:45:29 24 4
gpt4 key购买 nike

大家好,感谢您的帮助!首先我告诉你上下文。我必须在 Windows 8 通用应用程序、饮料自动售货机模拟器上进行操作。我的类(class)是:

  1. 经理(创建机器并放入配料和饮料)

  2. 自动售货机(拥有配料和饮料 list ,检查是否有足够的饮料等)

  3. 带有名称和数量的成分类,

  4. 一个带有名称、价格等的抽象基类 Drink

  5. 类 Tea、Coffee 和 Chocolate 继承自 Drink 并拥有自己的配料实例列表。

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

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

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

它说

"The left hand side of an assignment must be a variable, proprety or indexer"

要明确一点,我希望如果有人打开一种新类型的饮料,并执行Ingredient.Coffee,它会自动给他名称字符串“Coffee”,他不会名字一定要自己给,以后才不会有错误。我希望我说得很清楚。感谢您的帮助,我才刚刚开始。

最佳答案

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

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

您还可以像这样检查它是否存在于 Enum 中。

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

关于c# - 在 C# 上使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46620054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com