标志枚举属性

Jas*_*son 7 c# enums flags

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

cgr*_*eno 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"
Run Code Online (Sandbox Code Playgroud)

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

p.ToString("F") //Prints out "Read, Write"
Run Code Online (Sandbox Code Playgroud)

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


Jon*_*eet 5

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