3

在 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
}

为什么第一个例子选择了最后一个匹配值,而第二个例子选择了第一个匹配值?

4

0 回答 0