在枚举中指定基础类型的用例是什么?

Mar*_*lon 18 c# enums types

有什么意义

enum SomeEnum : byte // <----
{
  SomeValue = 0x01,
  ...
}
Run Code Online (Sandbox Code Playgroud)

当你必须进行转换只是为了将它分配给与枚举基础类型相同类型的变量?

byte b = (byte)SomeEnum.SomeValue;
Run Code Online (Sandbox Code Playgroud)

EMP*_*EMP 13

int没什么意义,真的,除非默认的底层类型()对你来说不够,即.你想使用比你可以做的更高的整数值long.如果[Flags]枚举值超过32,则此选项非常有用.

您可以创建它byteshort仅限制值的范围,但它实际上仍然需要4个字节(即相同int).

  • 对于单个变量,由于填充,最后一部分可能是正确的.但是,我相信如果你有一个带有基础类型字节的枚举的大数组,那就像有一个`byte []`而不是`int []`. (11认同)
  • @EMP:我也是......一个大的,这就是为什么我在这里! (9认同)
  • 你有最后一部分的引用吗? (4认同)