我想在C#的字节变量中使用5个布尔值。我想出了下面的代码,效果很好,但是很丑。
byte myDataMask = 0;
if (isOne) myDataMask |= 1;
if (isTwo) myDataMask |= 2;
if (isFour) myDataMask |= 4;
if (isEight) myDataMask |= 8;
if (isSixteen) myDataMask |= 16;
是否存在更好,更优雅,更短的表达方式?
答案 0 :(得分:1)
枚举怎么样:
public enum Mask
{
IS_NONE = 0,
IS_ONE = 1,
IS_TWO = 2,
IS_FOUR = 4,
IS_EIGHT = 8,
IS_SIXTEEN = 16
}
private static void Main()
{
byte data = 0x04;
switch ((Mask)data)
{
case Mask.IS_NONE :
break;
case Mask.IS_ONE :
break;
case Mask.IS_TWO :
break;
case Mask.IS_FOUR :
break;
case Mask.IS_EIGHT :
break;
case Mask.IS_SIXTEEN :
break;
}
}