2011-05-05 39 views
1

我是新来枚举。帮助使用枚举和Enum.Parse

我有了这个枚举:

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' 

我希望你明白我想说什么。

回答

3

typeof(Categories)代替Categories并添加一个演员,就像这样:

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

这假定this.Category是类型Categories并且是必需的,因为Enum.Parse返回类型值object

+0

'this.Category'确实被声明为这样:) – BoltClock 2011-05-05 16:52:05

4

要使Type对象与Enum.Parse()这样的方法一起使用,请使用带有类型名称的typeof运算符。您还需要执行从object铸造(其返回)到您的枚举:

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

要添加到上面的答案,这[MSDN]上也有一个例子(http://msdn.microsoft.com/en-us/library/essfb559.aspx#9ad1524e-346d-4e5d-8637- 88a5cc1ba98a) – Matt 2011-05-05 16:52:05