知道值时获取枚举名称

Wed*_*dTM 37 c# enums

我有一个不同颜色的枚举.我想通过一些功能的int,并使其返回颜色名称是在该位置的枚举.

这样做的方法是什么?

mqp*_*mqp 74

return ((MyEnumClass)n).ToString();
Run Code Online (Sandbox Code Playgroud)


Tom*_*cek 57

另一种选择是使用GetName静态方法:

Enum.GetName(typeof(MyEnumClass), n);
Run Code Online (Sandbox Code Playgroud)

这样做的好处是代码能说明问题.很明显它会返回枚举的名称(当你使用例如ToString方法时可能有点难以实现).


jle*_*jle 14

在c#6中你可以使用nameof.

nameof(YourEnum.Something)
Run Code Online (Sandbox Code Playgroud)

结果是:

something
Run Code Online (Sandbox Code Playgroud)


Cha*_*ana 7

如果您的带有颜色的枚举已命名MyColorEnumName,请尝试

Enum.GetName(typeof(MyColorEnumName),  enumColorValue)
Run Code Online (Sandbox Code Playgroud)