J'ai cette énumération de drapeaux :
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
}
Je veux maintenant tester ma variable pour une certaine condition de drapeau.
Je veux identifier ma variable est seulement toute combinaison de :
None
Student
Assistant
Demonstration
Ainsi, si elle a l'une des autres valeurs de l'énumération, la variable ne satisfait pas au test.
Au début, j'ai commencé par ça :
bool bIsPersonnel = true;
if (_Assignments == AssignmentType.None ||
_Assignments == AssignmentType.Demonstration ||
_Assignments == AssignmentType.Student ||
_Assignments == AssignmentType.Assistant ||
_Assignments == (AssignmentType.Demonstration | AssignmentType.Student))
{
bIsPersonnel = false;
}
Mais je me suis vite rendu compte de la multiplicité des choix possibles.
Existe-t-il un moyen plus simple ?
Je ne vois pas comment la réponse suggérée peut aider. Je pense que le plus simple est de faire mon test à l'envers. Il suffit de tester s'il a l'un des autres drapeaux alors je sais que c'est du personnel !