-1

假设我们有一个枚举:

public enum SomeEnum
{
     None = 0x0000,
     Value1 = 0x0001,        
     Value2 = 0x0002,
     Value3 = 0x0200
     Defautl = Value1 | Value2
     SomeOtherDefault = Value1 | Value3
}

所以在这种情况下,对于给定的 SomeEnum 类型值,我们如何检查 Value2 是否存在然后切换它(如果未设置则设置,反之亦然)?给定的值可以是:

tempValue = Value1 | Value3 | Value2

这一定是一件简单的事情,但我不习惯枚举中的十六进制值。

4

2 回答 2

1
int value = tempValue & Value2;
if (value != 0)
{
    // Value2 is set
}

切换

tempValue = tempValue ^ Value2;

或者就像下面的答案一样

tempValue ^= Value2;
于 2013-07-19T13:27:19.167 回答
1

要切换它:

myValue ^= Value2;

要检查它是否有它:

if (myValue & Value2 != 0)
于 2013-07-19T13:28:07.043 回答