我有以下一组枚举:
[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”但Categories.F2
= 16777248。我希望Categories.F2
=“F,F2”或至少“F2”
我怎样才能让我的枚举仍然被识别为标志?有没有更好的方法来完成我想要做的事情?