帮助枚举和Enum.Parse

时间:2011-05-05 16:47:05

标签: c# .net string class enums

我是enum的新手。

我有这个枚举:

public enum Categories
{
    Animals,
    Animations,
    Accessories,
    Apearance,
    Clothing,
    Gadgets,
    Land,
    Scripts,
    Vehicles,
    Weapons,
    Other
}

然后我有这个变量:private Categories Category; 我正在尝试解析用户输入(字符串),以便Category等于正确的枚举。

this.Category = Enum.Parse(Categories ,cat);

我得到了这个错误:

'Product.Categories' is a 'type' but is used like a 'variable'

我希望你能理解我想说的话。

2 个答案:

答案 0 :(得分:4)

要使Type对象与Enum.Parse()之类的方法一起使用,请使用类型名称为typeof的运算符。您还需要执行从object(它返回)到您的枚举的强制转换:

this.Category = (Categories) Enum.Parse(typeof(Categories), cat);

答案 1 :(得分:3)

通过typeof(Categories)代替Categories并添加演员,如下所示:

this.Category = (Categories)Enum.Parse(typeof(Categories), cat);

这假设this.Category属于Categories类型,并且是必需的,因为Enum.Parse会返回类型object的值。