将枚举定义名称转换为字符串

时间:2011-05-30 00:41:19

标签: c# c#-4.0

如果我有这样的枚举:

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

如何在代码中将MyEnum投射到String()

我知道我可以将任何Enum值转换为像MyEnum.Element1.ToString()那样的sting,但是我如何将Enum定义/名称转换为字符串?

我想做那样的事情:

MyEnum.ToString()

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

正如@shsmith所说,使用:

typeof(MyEnum).Name  

但不像他说的那样,不要使用:

MyEnum.GetType().Name  

由于MyEnum不是静态的,因此无法调用该方法 您可以在特定元素上使用GetType(),如下所示:

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