是否可以使枚举自动生成其值

Hom*_*mam 1 c# enums

从MSDN上的这个示例:

[Flags] 
public enum Pet {
   None = 0,
   Dog = 1,
   Cat = 2,
   Bird = 4,
   Rabbit = 8,
   Other = 16
}
Run Code Online (Sandbox Code Playgroud)

有没有让enum自动生成它的值?

Jon*_*eet 6

假设你真的想要一个"标志"枚举,没有自动的方法来做这个,不.这个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)

如果一切都使用了位移,你知道你不会意外地得到一个实际上是多位的值.

  • 也许他们正试图存储最新Brundlepet的成分列表? (2认同)