2011-05-30 58 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