次の列挙型のセットがあります。
[Flags]
public enum Categories : uint
{
A = (1 << 0),
B = (1 << 1),
B1 = B | (1 << 16),
B2 = B | (1 << 17),
B3 = B | (1 << 18),
B4 = B | (1 << 19),
B5 = B | (1 << 20),
C = (1 << 2),
C1 = C | (1 << 21),
D = (1 << 3),
D1 = D | (1 << 22),
D2 = D | (1 << 23),
E = (1 << 4),
F = (1 << 5),
F1 = F | (1 << 23),
F2 = F | (1 << 24),
F3 = F | (1 << 25),
F4 = F | (1 << 26),
F5 = F | (1 << 27),
G = (1 << 6),
H = (1 << 7),
H1 = H | (1 << 28),
}
列挙型は、子列挙型がその親を意味する階層構造を表し、任意の数のフラグを適用できるという考え方です。
私が見ている問題は、デバッグ中にすべての子列挙型が名前または名前のセットとして表されていないことです。IE, Categories.F
= "F" but Categories.F2
= 16777248. 私はCategories.F2
= "F, F2" または少なくとも "F2"を望んでいました
列挙型をフラグとして認識したままにするにはどうすればよいですか? 私がやろうとしていることを達成するためのより良い方法はありますか?