我有一个枚举,其中:
现在我想在此DropBox中添加“All”(或“None”)值。
我该怎么做:
答案 0 :(得分:6)
Codesleuth对另一个答案的评论使我再次阅读了这个问题,这是一个更新。
如果您要使用多个组合,请考虑使用flags enumeration。在您的情况下,这意味着选择任何类型的组合是有效的输入。
[Flags]
enum MyTypes
{
None = 0,
One = 1,
Two = 2,
Three = 4,
Four = 8,
All = One | Two | Three | Four
}
如果用户只能选择一种类型或所有类型,则使用普通枚举:
enum MyType
{
None,
One,
Two,
Three,
Four,
All
}
答案 1 :(得分:2)
答案 2 :(得分:1)
我还有另外一个技巧,你可以在我的博客上查看:Enum Trick
最佳做法是将无或未知包括为零(0)。
'全部'是计算的,作为所有值的总和。
[Flags]
public enum MyTypes
{
None = 0,
One = 1,
Two = 2,
Three = 4,
Four = 8,
Last,
All = (Last << 1) - 3,
}
现在,当您添加值时,“全部”也会更新(无需更改)。