Вы можете сделать это, комбинируя значения с |
и проверяя с помощью &
.
Чтобы проверить, содержит ли значение либо тегов:
if ((myValue & (Tag.PrimaryNav | Tag.HomePage)) != 0) { ... }
|
объединяет тестируемые перечисления (побитовые) и &
тесты с помощью побитовой маскировки - если результат не равен нулю, у него установлен хотя бы один из них.
Если вы хотите проверить, установлены ли для них оба , вы также можете сделать это:
Tag desiredValue = Tag.PrimaryNav | Tag.HomePage;
if ((myValue & desiredValue) == desiredValue) { ... }
Здесь мы маскируем все, что нас не волнует, и проверяем, что полученное значение равно тому, о чем мы делаем (мы не можем использовать != 0
, как раньше, потому что это будет либо значение, и здесь нас интересует и ).
Некоторые ссылки: