在 C# 中确定 Enum 值的算法是如何工作的?
主要代码:
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
}
为什么第一个例子选择了最后一个匹配值,而第二个例子选择了第一个匹配值?