具有重复值的枚举的GetName

glu*_*k47 11 c#

如果我在C#枚举中有重复的值,说

enum MyE {
  value1 = 1,
  value2 = 2,
  valued = 1
}
Run Code Online (Sandbox Code Playgroud)

以下字符串的值应该是多少?

MyE N = (MyE)1;
string V1 = N.ToString();
string V2 = GetName(MyE, 1);
Run Code Online (Sandbox Code Playgroud)

V1和V2必须包含相同的值吗?这些价值应该是什么?

我没有在MSDN中找到任何内容,或者这里有关于复制的枚举的"解除引用",请指出我的链接,如果我错过了.

Chr*_*isF 15

实验表明:

V1 ="value1"

V2 ="value1"

但是,这不能保证.关于Enum.GetName状态的MSDN页面:

如果多个枚举成员具有相同的基础值,则GetName方法保证它将返回其中一个枚举成员的名称.但是,它不保证它始终返回相同枚举成员的名称.因此,当多个枚举成员具有相同的值时,应用程序代码永远不应该依赖于返回特定成员名称的方法.