Перечисления также используются при работе с битовыми флагами; в этом случае каждый бит определяется при помощи двоичной маски. Ниже показано типичное определение:
[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 и передает полученное значение функции класса.
0 коммент.:
Отправить комментарий