铸造枚举时的奇怪行为

时间:2017-11-14 03:15:09

标签: c# enums cil

我有一个枚举:

public enum Blah
{
    Value  = 0,
    Value2 = 1
}

以下代码:

void Main()
{
    Blah? a = Blah.Value;
    bool val = (a == (int) Blah.Value);  // compiles
         val = (a == (int) Blah.Value2); // doesn't compile
}

从上面的评论中可以看出,第一行编译但第二行没有编译。

任何人都可以解释一下吗?我检查了 IL解释器并且无法真正理解原因:

enter image description here

0 个答案:

没有答案