FlagsAttribute
в C # просто указывает , что перечисление может рассматриваться как битовое поле.
Что действительно важно, так это то, что вы правильно определяете значения перечисления, чтобы над ними могли выполняться побитовые операции AND, OR, NOT и XOR, т. Е. Каждому значению перечисления следует назначать следующую большую степень 2:
public enum class Days
{
Sunday = 1,
Monday = 2,
Tuesday = 4,
Wednesday = 8,
Thursday = 16,
Friday = 32,
Saturday = 64
};
[Flags]
не делает автоматически перечисляемые значения степенями двух.
Что означает атрибут Enum [Flags] в C #?