【发布时间】:2016-08-09 01:22:30
【问题描述】:
我目前有一些粗略的谷歌代码.. 可以,但我想换成一个枚举。
目前我需要一个字节来表示设置的一些位标志,
我目前有这个:
BitArray bitArray =new BitArray(new bool[] { true, true, false, false, false, false, false, false });
在行中使用..
new byte[] {ConvertToByte(bitArray)})
使用来自本网站的 ConvertToByte...
private static byte ConvertToByte(BitArray bits) // http://stackoverflow.com/questions/560123/convert-from-bitarray-to-byte
{
if (bits.Count != 8)
{
throw new ArgumentException("incorrect number of bits");
}
byte[] bytes = new byte[1];
bits.CopyTo(bytes, 0);
return bytes[0];
}
但是我想在我提到的时候使用一个枚举,所以我这样创建它:
[Flags]
public enum EventMessageTypes
{
None = 0,
aaa = 1,
bbb = 2,
ccc = 4,
ddd = 8,
eee = 16,
fff = 32,
All = aaa | bbb | ccc | ddd | eee | fff // All Events
}
然后
// Do bitwise OR to combine the values we want
EventMessageTypes eventMessages = EventMessageTypes.aaa | EventMessageTypes.bbb | EventMessageTypes.ccc;
但是我认为如何将 eventMessages 转换为一个字节(0x07)!所以我可以将它附加到我的字节数组中?
【问题讨论】: