为什么枚举声明接受短而不是Int16

Joh*_*ais 19 .net c# enums

我想声明一个非默认底层类型的新枚举.这有效:

public enum MyEnum : short
{ A, B, C, }
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么这不编译:

public enum MyEnum : System.Int16
{ A, B, C, }
Run Code Online (Sandbox Code Playgroud)

编译说

输入byte,sbyte,short,ushort,int,uint,long或ulong

我知道short是所有.NET版本(包括32/64位版本)的Int16的别名.我不明白为什么编译器在该特定情况下给别名赋予不同的含义.

任何解释?

Dan*_*nas 19

语法是正确的.C#规范明确规定,枚举的基础类型必须是byte,sbyte,short,ushort,int,uint,longulong.

在这里阅读微软对此的评论.