来自MSDN上的this sample:
[Flags]
public enum Pet {
None = 0,
Dog = 1,
Cat = 2,
Bird = 4,
Rabbit = 8,
Other = 16
}
有没有让enum自动生成其值?
答案 0 :(得分:6)
假设你真的想要一个“标志”枚举,那么就没有自动化的方法,不行。 Pet
示例似乎不适合标记,但我认为这只是一个不幸的选择。减少错误轻微的可能性的一个选项是使用位操作:
[Flags]
public enum Pet {
None = 0,
Dog = 1 << 0,
Cat = 1 << 1,
Bird = 1 << 2,
Rabbit = 1 << 3,
Other = 1 << 4
}
如果一切都使用了位移,你知道你不会意外地得到一个实际上是多位的值。
答案 1 :(得分:0)
只是不要输入等号和值。
例如,
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
是MSDN网站上的一个示例(http://msdn.microsoft.com/en-us/library/sbbt4032(v=vs.80).aspx)
答案 2 :(得分:0)
是的,请离开他们:
public enum Pet {
None,
Dog,
Cat,
Bird,
Rabbit,
Other
}
但是这样你不应该使用flags属性修饰枚举,因为这些值不能以有意义的方式组合。