Por que esta declaração enum está funcionando agora?
Ao responder a outra pergunta, Jon Skeet mencionou que há uma coisa estranha acontecendo com a definição deenums
. A resposta dele.
Ele afirma que redefinir o tipo subjacente de umenum
só é possível com os aliases de tipo e não com os tipos de estrutura (int
é válido,Int32
etc.)
public enum Foo : UInt32 {} // Invalid
public enum Bar : uint {} // Valid
Agora eu tentei reproduzir isso (com C # 6 / Roslyn no VS2015) e não cheguei à mesma conclusão:
public enum TestEnum : UInt32
{
}
e
public enum MyEnum : uint
{
}
são ambos totalmente válidos. Por que? Ou o que mudou?
EDITAR:
Portanto, para esclarecer as coisas, houve uma alteração no C # 6, que ainda não foi documentada e será documentada em breve, como você pode ler nesta edição do git no siteRoslyn Github