为什么可以仅使用别名声明枚举类型,而不使用.NET类型?
为什么可以仅使用别名声明枚举类型,而不使用.NET类型?
这个完美的工作了...
public enum NodeType : byte { Search, Analysis, Output, Input, Audio, Movement}
这会返回一个编译器错误...
public enum NodeType : Byte { Search, Analysis, Output, Input, Audio, Movement}
使用反射时同样会发生...
那么,有人知道为什么enum
的基础只是一个整数类型吗?
admin 更改状态以发布 2023年5月21日
因为规范如此规定:
枚举声明:
属性可选 枚举修饰符可选 枚举标识符 枚举基础可选 枚举体 ;可选枚举基础:
: 整数类型枚举体:
{ 枚举元素声明可选 }
{ 枚举元素声明 , }每个枚举类型都有对应的整数类型,称为枚举类型的基础类型。这个基础类型必须能表示在枚举中定义的所有枚举器值。枚举声明可以显式声明基础类型为byte、sbyte、short、ushort、int、uint、long或ulong。请注意,不能使用char作为基础类型。没有显式声明基础类型的枚举声明具有int基础类型。
...
整数类型定义为:
整数类型:
sbyte
byte
short
ushort
int
uint
long
ulong
char