2011-05-30 53 views
4

如果我有枚举这样的:演员枚举定义为string

public enum MyEnum 
    { 
     Element1 = 1, 
     Element2, 
     Element3, 
     Element4 
    } 

我怎么会投MyEnumString()代码

我知道,我可以施放任何Enum值蜇一样, MyEnum.Element1.ToString(),但我怎么可以投入枚举定义/名称字符串?

我想要做这样的事情:

MyEnum.ToString()

+2

尝试'MyEnum.GetType()。Name'为MyEnum类型的变量。或'typeof(MyEnum).Name'类型本身 – hsmiths 2011-05-30 00:48:49

+0

@shsmith +1,谢谢 – 2011-05-30 01:00:13

回答

1

正如@shsmith说,使用:

typeof(MyEnum).Name 

但不像他说,不要使用:

MyEnum.GetType().Name 

由于MyEnum不是静态的,因此不能调用该方法。
可以在特定元素上使用GetType()不过,像这样:

MyEnum.Element1.GetType().Name //=MyEnum 
3

根据您的使用情况下,我觉得你很可能会更好使用的显示名称属性,如例子here。枚举字符串表示通常不是您想要显示的内容,如果您希望更改字符串,则需要在各个位置更新代码。

+0

+1枚举常常被滥用。如果你需要一个字符串值,只需使用一个对象。 – 2011-09-26 13:36:36