假设我们有一个枚举:
public enum SomeEnum
{
None = 0x0000,
Value1 = 0x0001,
Value2 = 0x0002,
Value3 = 0x0200
Defautl = Value1 | Value2
SomeOtherDefault = Value1 | Value3
}
所以在这种情况下,对于给定的SomeEnum类型值,我们如何检查Value2是否存在然后切换它(如果未设置则设置或反之)? 给定值可以是:
tempValue = Value1 | Value3 | Value2
这一定很简单,但我不习惯在枚举中使用十六进制值。
答案 0 :(得分:1)
int value = tempValue & Value2;
if (value != 0)
{
// Value2 is set
}
切换
tempValue = tempValue ^ Value2;
或者如下面的答案那样
tempValue ^= Value2;
答案 1 :(得分:1)
要切换它:
myValue ^= Value2;
检查是否有:
if (myValue & Value2 != 0)