C# Language Tester les valeurs d'énumération de style avec la logique binaire


Exemple

Une valeur d'énumération de style drapeaux doit être testée avec une logique bit par bit car elle ne peut correspondre à aucune valeur unique.

[Flags]
enum FlagsEnum
{
    Option1 = 1,
    Option2 = 2,
    Option3 = 4,
    Option2And3 = Option2 | Option3;

    Default = Option1 | Option3,
}

La valeur Default est en fait une combinaison de deux autres fusionnés avec un OU au niveau du bit. Par conséquent, pour tester la présence d'un indicateur, nous devons utiliser un ET au niveau du bit.

var value = FlagsEnum.Default;

bool isOption2And3Set = (value & FlagsEnum.Option2And3) == FlagsEnum.Option2And3;

Assert.True(isOption2And3Set);