Учитывая перечисление:
[Flags]
enum foo
{
a = 1,
b = 2,
c = 4
}
тогда
foo example = a | b;
Если я не знаю, содержит ли foo c
, ранее я писал следующее
if (example & foo.c == foo.c)
example = example ^ foo.c;
Есть ли способ сделать это, не проверяя наличие foo.c
в example
?
Как и в случае с дополнениями, я могу просто сделать OR
, и если значение перечисления уже существует в example
, тогда это не имеет значения.