Get enum name when value is known
我有一个枚举,其中有不同的颜色。我想传递一些函数
怎么做?
1 | return ((MyEnumClass)n).ToString(); |
另一种选择是使用
1 |
这就有了代码本身所具有的好处。很明显,它返回枚举的名称(当您使用例如
在C 6中,您可以使用
1 |
结果:
1 | something |
如果带颜色的枚举名为
1 |
如果您关心性能,请注意使用这里给出的任何建议:它们都使用反射为枚举提供字符串值。如果字符串值是您最需要的,那么最好使用字符串。如果仍然希望类型安全,请定义一个类和一个集合来定义"枚举",并让该类在toString()重写中回显其名称。
下面是基于颜色值获取枚举名称的示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class Program { //Declare Enum enum colors {white=0,black=1,skyblue=2,blue=3 } static void Main(string[] args) { // It will return single color name which is"skyblue" string colorName=Enum.GetName(typeof(colors),2); //it will returns all the color names in string array. //We can retrive either through loop or pass index in array. string[] colorsName = Enum.GetNames(typeof(colors)); //Passing index in array and it would return skyblue color name string colName = colorsName[2]; Console.WriteLine(colorName); Console.WriteLine(colName); Console.ReadLine(); } } |