【发布时间】:2016-06-02 10:18:47
【问题描述】:
在回答另一个问题时,Jon Skeet 提到 enums 的定义发生了一件奇怪的事情。 His answer.
他指出,重新定义 enum 的基础类型只能使用类型别名而不是框架类型(int 有效,Int32 无效,等等)
public enum Foo : UInt32 {} // Invalid
public enum Bar : uint {} // Valid
现在我尝试重现它(在 VS2015 中使用 C#6/Roslyn),但我没有得出相同的结论:
public enum TestEnum : UInt32
{
}
和
public enum MyEnum : uint
{
}
都是完全有效的。为什么呢?或者发生了什么变化?
编辑:
所以为了澄清一下,这是 C#6 中的一个更改,尚未记录在案,很快就会记录在案,正如您可以从 Roslyn Github 上的这个 git 问题中看到的那样
【问题讨论】:
-
该答案发布在
Oct 18 '08 at 18:52,比 C# 6 早了几年!看来他们已经修复了这个异常。 -
它是一个新的编译器。
-
@ChrisF 天哪,我当时在小学,哈哈
-
@svick 谢谢先生