Отвечая на другой вопрос, Джон Скит упомянул, что есть странная вещь, имеющая определение enums
. His answer.Почему эта декларация enum работает сейчас?
Он утверждает, что redifining базового типа с enum
возможно только с типом-псевдонимами, а не с типами каркасных (int
действительно, Int32
нет, и т.д.)
public enum Foo : UInt32 {} // Invalid
public enum Bar : uint {} // Valid
Теперь я попытался воспроизвести, что (с C# 6/Рослин в VS2015), и я не пришел к такому же выводу:
public enum TestEnum : UInt32
{
}
и
public enum MyEnum : uint
{
}
оба действительны. Почему это так? Или что изменилось?
EDIT:
Итак, чтобы убрать вещи, это изменение в C# 6, что не было зарегистрировано ранее, и это будет документировано в ближайшее время, как вы можете прочитать из этого git issue на Roslyn Github
Этот ответ был размещен на '18 окт '08 в 18: 52', который предшествует C# 6 на несколько лет! Казалось бы, они исправили эту аномалию. – ChrisF
его новый компилятор. –
@ChrisF gosh, я был в начальной школе, затем haha – Mafii