How to Compare Flags in C#?

前端 未结 11 1751
我寻月下人不归
我寻月下人不归 2020-11-27 04:03

I have a flag enum below.

[Flags]
public enum FlagTest
{
    None = 0x0,
    Flag1 = 0x1,
    Flag2 = 0x2,
    Flag3 = 0x4
}

I cannot make

11条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-27 04:32

    Try this:

    
    if ((testItem & FlagTest.Flag1) == FlagTest.Flag1)
    {
        // do something
    }
    
    Basically, your code is asking if having both flags set is the same as having one flag set, which is obviously false. The code above will leave only the Flag1 bit set if it is set at all, then compares this result to Flag1.

提交回复
热议问题