Атрибут Перечисления флагов

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

7
задан Phil Ross 30 July 2010 в 11:45
поделиться

2 ответа

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

11
ответ дан 6 December 2019 в 12:45
поделиться

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

5
ответ дан 6 December 2019 в 12:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: