Почему эта декларация enum работает сейчас?
Отвечая на другой вопрос, Джон Скит упомянул, что с определениемenums
. Его ответ.
Он утверждает, что переопределение основного типаenum
возможно только с псевдонимами типов, но не с типами каркаса (int
является действительным,Int32
нет и т. д.)
public enum Foo : UInt32 {} // Invalid
public enum Bar : uint {} // Valid
Теперь я попытался воспроизвести это (с C # 6 / Roslyn в VS2015), и я не пришел к такому же выводу:
public enum TestEnum : UInt32
{
}
а также
public enum MyEnum : uint
{
}
оба полностью действительны. Почему это так? Или что изменилось?
РЕДАКТИРОВАТЬ:
Таким образом, чтобы прояснить ситуацию, это было изменение в C # 6, которое еще не было задокументировано, и оно скоро будет задокументировано, как вы можете прочитать из этой проблемы git наРослин Гитхуб