有什么意义
enum SomeEnum : byte // <----
{
SomeValue = 0x01,
...
}
当你必须进行强制类型转换,只为了将其赋值给与枚举底层类型相同的变量类型时,该怎么办?
byte b = (byte)SomeEnum.SomeValue;
其实没有太多意义,除非默认基本类型(int
)不够用,即您想使用比它更高的整数值,则可以将其设置为long
。当您拥有一个具有超过32个值的[Flags]
枚举时,这可能很有用。
您可以将其设置为byte
或short
以限制值的范围,但是在用作局部变量时(即与int
相同),实际上仍将占用4个字节。但是,如果用作数组,则可能占用更少的内存。
来自枚举(C#参考)
底层类型指定为每个枚举器分配多少存储空间。 但是,需要显式转换才能从枚举类型转换为整数类型。
byte[]
而不是一个int[]
。 - Jon Skeet