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