動作確認
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
*/
}