How to Compare Flags in C#?

前端 未结 11 1759
我寻月下人不归
我寻月下人不归 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:12

    if ((testItem & FlagTest.Flag1) == FlagTest.Flag1)
    {
         // Do something
    }
    

    (testItem & FlagTest.Flag1) is a bitwise AND operation.

    FlagTest.Flag1 is equivalent to 001 with OP's enum. Now let's say testItem has Flag1 and Flag2 (so it's bitwise 101):

      001
     &101
     ----
      001 == FlagTest.Flag1
    

提交回复
热议问题