根据msdn,枚举不能拥有char作为基本类型。为什么枚举不能拥有char作为基本类型?此外,为什么微软强烈建议枚举包含一个值为0的常量?非常感谢。
没有从其他类型到char类型的隐式转换。特别地,即使sbyte、byte和ushort类型的值范围完全可以用char类型表示,也不存在从sbyte、byte或ushort到char的隐式转换。
char类型的常量必须写成字符字面值或整数字面值结合char类型的转换。例如,(char)10等同于'\x000A'。
enum
的默认值为0。虽然在这里,你不能定义一个字符枚举类型,因为没有从char到其他整数类型的隐式转换,但是从char到整数有一种整数转换,所以你可以使用如下方式:
public enum MyCharEnum
{
BEL = 0x07,
CR = 0x0D,
A = 'A',
z = 'z'
}
使用显式转换将其转换为char,如下:
MyCharEnum thing = MyCharEnum.BEL;
char ch = (char)thing;
System.Console.WriteLine(ch.ToString());