unity switch español enum c# .net enums

c# - switch - ¿Por qué enum declaration acepta short pero no Int16?



enum to list c# (2)

Quiero declarar una nueva enumeración con un tipo subyacente no predeterminado. Esto funciona:

public enum MyEnum : short { A, B, C, }

Pero no entiendo la razón por la cual esto no compila:

public enum MyEnum : System.Int16 { A, B, C, }

El compilador dice

Tipo byte, sbyte, short, ushort, int, uint, long o ulong expected

Entiendo que short es un alias para Int16 en todas las versiones .NET (incluye sabores de 32/64 bits). No veo por qué el compilador le da un significado diferente al alias en ese caso particular.

¿Alguna explicación?


"... El segundo ejemplo intenta heredar de un tipo derivado de System.ValueType, que está estrictamente prohibido ..."

Lea aquí :


La sintaxis es correcta La especificación C # establece explícitamente que el tipo subyacente de la enumeración debe ser byte , sbyte , short , ushort , int , uint , long o ulong .

Lea lo que Microsoft dice sobre esto aquí .