我只是想知道为什么我得到这个输出:
enum MyEnum
{
a=1,
b=2,
c=3,
d=3,
f=d
}
Console.WriteLine(MyEnum.f.ToString());
Run Code Online (Sandbox Code Playgroud)
输出
c
但在Mono
OUTPUT
f
那么为什么输出c?不是吗?编译器如何选择c?如果我改变这样的代码:
enum MyEnum
{
a=1,
b=2,
c=3,
d=3,
k=3
}
Console.WriteLine(MyEnum.k.ToString());
Run Code Online (Sandbox Code Playgroud)
再次输出
c
!
另一个例子:
enum MyEnum
{
a=3,
b=3,
c=3,
d=3,
f=d,
}
MessageBox.Show(MyEnum.f.ToString());
Run Code Online (Sandbox Code Playgroud)
输出
c
小智 36
来自MSDN:
如果多个枚举成员具有相同的基础值,并且您尝试根据其基础值检索枚举成员名称的字符串表示形式,则您的代码不应对该方法将返回的名称做出任何假设.
请参阅:http://msdn.microsoft.com/en-us/library/a0h36syw.aspx#Y300
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |