Warum funktioniert diese Enum-Deklaration jetzt?
ei der Beantwortung einer weiteren Frage erwähnte Jon Skeet, dass bei der Definition von @ etwas Seltsames vor sich gehenums
. Seine Antwort.
Er gibt an, dass die Neudefinition des zugrunde liegenden Typs einesenum
ist nur mit den Typ-Aliasen und nicht mit den Framework-Typen möglich int
ist gültig,Int32
nicht usw.)
public enum Foo : UInt32 {} // Invalid
public enum Bar : uint {} // Valid
Nun habe ich versucht, das zu reproduzieren (mit C # 6 / Roslyn in VS2015) und bin nicht zu dem gleichen Ergebnis gekommen:
public enum TestEnum : UInt32
{
}
un
public enum MyEnum : uint
{
}
sind beide voll gültig. Warum ist das so? Oder hat sich was geändert?
BEARBEITEN
Um Abhilfe zu schaffen, war es eine Änderung in C # 6, die noch nicht dokumentiert wurde. Sie wird demnächst dokumentiert, wie Sie aus dieser Git-Ausgabe auf der @ lesen könneRoslyn Github