我今天不小心定义了一个不包含任何值的枚举:
public enum MyConfusingEnum{}
编译器很高兴让我定义它,并且成功地构建了代码。
现在我显然不能在传统意义上使用它,因为代码. 。
var mySadCompiler = MyConfusingEnum;
没有指定一个值,但有趣的是,我 曾经是可以说,. 。
var myRoundTheHousesZeroState = Activator.CreateInstance<MyConfusingEnum>();
正如我提到的,它是值类型为 MyConfusingEnum
,值为0;
我的问题是,为什么编译器允许一个空定义,有没有什么情况下它可能是有用的?