如何在枚举中使用两个相等的项来获得ToString()方法的正确结果

mtk*_*nko 0 c# enums

我有枚举

[Flags]
public enum MyEnum
{
   Item1 = 32768,
   Item2 = 65536,
   Item3 = 524288,
   Item4 = Item3
}
Run Code Online (Sandbox Code Playgroud)

ToString()操作的结果:

MyEnum.Item3.ToString() - "Item4"
MyEnum.Item4.ToString() - "Item4"
Run Code Online (Sandbox Code Playgroud)

有可能得到:

MyEnum.Item3.ToString() - "Item3"
MyEnum.Item4.ToString() - "Item4" 
Run Code Online (Sandbox Code Playgroud)

Mar*_*zek 5

不,你不能.

如果多个枚举成员具有相同的基础值,并且您尝试根据其基础值检索枚举成员名称的字符串表示形式,则您的代码不应对该方法将返回的名称做出任何假设.

Enum.ToString() 方法