从MSDN上的这个示例:
[Flags]
public enum Pet {
None = 0,
Dog = 1,
Cat = 2,
Bird = 4,
Rabbit = 8,
Other = 16
}
Run Code Online (Sandbox Code Playgroud)
有没有让enum自动生成它的值?
假设你真的想要一个"标志"枚举,没有自动的方法来做这个,不.这个Pet例子似乎不适合标志,但我认为这只是一个不幸的例子选择.这减少了出错的可能性,一种选择略有是使用位操作:
[Flags]
public enum Pet {
None = 0,
Dog = 1 << 0,
Cat = 1 << 1,
Bird = 1 << 2,
Rabbit = 1 << 3,
Other = 1 << 4
}
Run Code Online (Sandbox Code Playgroud)
如果一切都使用了位移,你知道你不会意外地得到一个实际上是多位的值.