7

没有它你可以对 [Flags] 属性进行位测试有什么意义?

4

2 回答 2

11

Flags 属性允许您在调用时查看枚举类型的 CSV(逗号分隔值)ToString()

例如:

[Flags]
public Enum Permissions
{
  None =0,
  Read = 1,
  Write =2,
  Delete= 4
}

Permissions p = Permissions.Read | Permissions.Write;
p.ToString() //Prints out "Read, Write"

但是,如果您删除 flags 属性并执行以下操作,您仍然可以获得相同的结果:

p.ToString("F") //Prints out "Read, Write"

正如约翰指出的那样,它还允许您将 CSV 转换回 Enum 使用Enum.Parse

于 2010-07-30T11:43:32.183 回答
5

它改变了字符串和枚举值(Enum.ParseToString)之间的转换行为。

于 2010-07-30T11:43:51.163 回答