Подтвердить что ты не робот

Снятие флага enum

Рассмотрим

   [Flags]
   public enum State
   {
      IsCool = 0x1,
      SomethingElse = 0x2
   }

У меня есть State someState, и если какое-то выражение оценивается как true, я хочу отключить флаг IsCool someState независимо от того, что он уже установлен или не установлен. Это означает, что я не могу использовать someState ^= State.IsCool, но что я могу использовать вместо этого?

4b9b3361

Ответ 1

Вам нужно обратиться к этому обратному пути, чем при установке флага: побитовое И текущее состояние с дополнением к флагу, который вы хотите удалить.

someState &= ~State.IsCool;