У меня есть перечисление этого флага:
public enum AssignmentType
{
None = 0,
Attendant = 1,
ConductorCBS = 2,
ReaderCBS = 4,
Chairman = 8,
Mike = 16,
PlatformAttendant = 32,
Prayer = 64,
OCLM = 128,
Sound = 256,
Student = 512,
Custom = 1024,
Demonstration = 2048,
Assistant = 4096
}
Теперь я хочу проверить мою переменную на предмет определенного состояния флага.
Я хочу указать, что моя переменная только любая комбинация :
None
Student
Assistant
Demonstration
Поэтому, если она имеет какие-либо другие значения перечисления, переменная не будет удовлетворять критерию.
Сначала я началс этим:
bool bIsPersonnel = true;
if (_Assignments == AssignmentType.None ||
_Assignments == AssignmentType.Demonstration ||
_Assignments == AssignmentType.Student ||
_Assignments == AssignmentType.Assistant ||
_Assignments == (AssignmentType.Demonstration | AssignmentType.Student))
{
bIsPersonnel = false;
}
Но я быстро понял, что существует несколько вариантов выбора.
Есть ли более простой способ?
Я не вижу, как подсказывает, что помогает ответ,Я думаю, что проще всего сделать мой тест в обратном порядке.Просто проверьте, есть ли у него другие флаги , тогда я знаю, что это персонал!