标志枚举属性

时间:2010-07-30 11:41:54

标签: c# enums flags

没有它你可以测试的[Flags]属性有什么意义?

2 个答案:

答案 0 :(得分:11)

Flags属性允许您在调用ToString()

时查看枚举类型的CSV(逗号分隔值)

例如:

[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"

正如约翰所指出的,它还允许您使用Enum.Parse

将CSV转换回枚举

答案 1 :(得分:5)

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