.NET Enum基本类型的Char

gh9*_*gh9 9 .net enums char

根据msdn Enums不能有基本类型的char.为什么enum没有基本类型的char?另外为什么微软强烈建议枚举包含一个值为0的常量?非常感谢你

小智 5

您可以找到C#语言规范的链接.我认为限制的原因可能源于语言规范第4.1.5节中的这些陈述.

char类型被归类为整数类型,但它在两个方面与其他整数类型不同:

  • 其他类型没有隐式转换为char类型.特别是,即使sbyte,byte和ushort类型具有可使用char类型完全表示的值范围,也不存在从sbyte,byte或ushort到char的隐式转换.

  • char类型的常量必须写为字符文字或整数文字,并与强制转换为char类型.例如,(char)10与'\ x000A'相同.

至于为什么为零,因为未初始化的默认值为enum0.