Работа с битовыми флагами перечисления

Перечисления также используются при работе с битовыми флагами; в этом случае каждый бит определяется при помощи двоичной маски. Ниже показано типичное определение:

[Flags]

enum BitValues

{

NoBits = 0,

Bit1 = 0x00000001,

Bit2 = 0x00000002,

Bit3 = 0x00000004,

Bit4 = 0x00000008,

Bit5 = 0x00000010,

AllBits = 0xFFFFFFFF

}

class Test

{

public static void Member(BitValues value)

{

// Какие-то действия

}

public static void Main()

{

Member(BitValues.Bit1 | BitValues.Bit2);

}

}

Перед определением перечисления указан атрибут [Flags], поскольку в программах просмотра и конструирования объектов для флаговых перечислений может быть предусмотрен специальный интерфейс. В таких перечислениях пользователю следует предоставить возможность объединения битов операцией OR, тогда как для прочих перечислений эта операция не имеет смысла.

Функция Main() объединяет два бита операцией OR и передает полученное значение функции класса.

Предлагаю ознакомиться с аналогичными статьями: