¿Por qué está funcionando esta declaración de enumeración ahora?
Mientras respondía otra pregunta, Jon Skeet mencionó que hay algo extraño con la definición deenums
. Su respuesta
Afirma que redifinar el tipo subyacente de unenum
solo es posible con los alias de tipo y no con los tipos de marco (int
es válida,Int32
no, etc.)
public enum Foo : UInt32 {} // Invalid
public enum Bar : uint {} // Valid
Ahora intenté reproducir eso (con C # 6 / Roslyn en VS2015), y no llegué a la misma conclusión:
public enum TestEnum : UInt32
{
}
y
public enum MyEnum : uint
{
}
Ambos son totalmente válidos. ¿Por qué es así? ¿O ha cambiado lo que ha cambiado?
EDITAR:
Entonces, para aclarar las cosas, fue un cambio en C # 6, que aún no se ha documentado, y se documentará pronto, como puede leer de este problema de git en elRoslyn Github