如果我宣布
[Flags]
public enum MyColor
{
Red = 1;
Green = 2;
Blue = 4;
White = 8;
Magenta = 16;
... (etc)
}
有没有办法确定/设置此枚举占用的字节数?它还会以什么字节顺序结束? (例如,我是否必须通过线路正确发送HostToNetwork()?)另外,为了调用HostToNetwork,我可以转换为字节数组并进行迭代吗?
答案 0 :(得分:10)
[Flags]
public enum MyColor : byte // sets the underlying type.
{
Red = 0;
Green = 1;
Blue = 2;
White = 4;
Magenta = 8;
... (etc)
}
无法直接设置字节序。您可以使用一些精心设计的数字来模拟小端系统上的大端字节。但是,我总是使用显式API来转换字节顺序。
答案 1 :(得分:6)
完整答案是:
是:
[Flags]
public enum MyColor : byte // sets the underlying type.
{
Red = 1;
Green = 2;
Blue = 4;
White = 8;
Magenta = 16;
... (etc)
}
无论编译什么,所以对于我的情况,x86(小)。
这是一个棘手的地方。我发现了一些事情: