Ответ 1
Вам нужно обратиться к этому обратному пути, чем при установке флага: побитовое И текущее состояние с дополнением к флагу, который вы хотите удалить.
someState &= ~State.IsCool;
Рассмотрим
[Flags]
public enum State
{
IsCool = 0x1,
SomethingElse = 0x2
}
У меня есть State someState
, и если какое-то выражение оценивается как true, я хочу отключить флаг IsCool
someState
независимо от того, что он уже установлен или не установлен. Это означает, что я не могу использовать someState ^= State.IsCool
, но что я могу использовать вместо этого?
Вам нужно обратиться к этому обратному пути, чем при установке флага: побитовое И текущее состояние с дополнением к флагу, который вы хотите удалить.
someState &= ~State.IsCool;