動作確認
Visual Studio 2017 C#
列挙体の定義
[Flags] private enum EnumSample { //項目が混じらないように、それぞれ立てるビットの位置を変える a = 0b0001, //「0b」から始めると2進数で書ける b = 0b0010, c = 0b0100, d = 0b1000 }
使い方
//aとcを選択する var sample = EnumSample.a | EnumSample.c; //選択されているかはHasFlagを利用して確認する if (sample.HasFlag(EnumSample.a)) { //こっちに来る Console.WriteLine("aは存在"); } else { //こっちには来ない Console.WriteLine("aは未存在"); } //どの項目が選択されているかを確認したい場合は、列挙体の全項目を回してチェックできる foreach (EnumSample enumValue in Enum.GetValues(typeof(EnumSample))) { Console.WriteLine($"{enumValue} = " + sample.HasFlag(enumValue)); /* * 実行結果 * a = True * b = False * c = True * d = False */ }