Атрибут Enum Flags - PullRequest
       5

Атрибут Enum Flags

7 голосов
/ 30 июля 2010

Какой смысл атрибута [Flags], который вы можете проверить без него?

Ответы [ 2 ]

11 голосов
/ 30 июля 2010

Атрибут 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

5 голосов
/ 30 июля 2010

Изменяет поведение преобразования между строками и значениями перечисления (Enum.Parse и ToString).

...