C# 中的枚举值确定算法在示例中是如何工作的?
主要代码:
void Main()
{
Numbers number;
number = Numbers.Four;
Console.WriteLine((int) number);
Console.WriteLine(number);
Console.WriteLine(Numbers.Four);
}
示例 1:
enum Numbers {
One,
Two,
Three,
Four = 1,
Five,
Six
}
将四的值设置为 1
执行结果是:
1 四 四
如果你反编译,你可以看到以下内容:
private enum Numbers
{
One = 0,
Two = 1,
Three = 2,
Four = 1,
Five = 2,
Six = 3
}
示例 2
enum Numbers {
One,
Two,
Three,
Four = 2,
Five,
Six
}
为四设置值 2
执行结果是:
2 三 三
反编译后是这样的:
private enum Numbers
{
One = 0,
Two = 1,
Three = 2,
Four = 2,
Five = 3,
Six = 4
}
为什么在第一个例子中选择了最后一个匹配值,而在第二个例子中选择了第一个匹配值?


