Основы C# Урок 69. Использование атрибута Flags для перечисления
Перед перечислением можно поставить атрибут Flags. Это означает, что мы сможем работать с таким перечислением как с набором битов. В частности, мы сможем использовать битовые операции.
Как вы видите, мы записали в переменную type0 результат побитовой операции двух переменных перечисляемого типа MilitaryType. В следующей строке мы выводим на консоль результат. На экран выведется "Land, Cosmic" (как следствие применения к MilitaryType атрибута Flags.
Обратное преоразование тоже действует. Так, мы с помощью метода Parse записываем в наше перечисление типа MilitaryType преобразованную строку "Marine, Cosmic". В результате этого в type1 окажется значение MilitaryType.Marine | MilitaryType.Cosmic.
Также обратите внимание, что для записи простых (т. е. не являющихся комбинацией других) значений в перечисление с атрибутом Flags надо использовать для их величин степени двойки.
Parking.ru. Качественный виртуальный хостинг на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый выделенный хостинг на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru