Отправляет email-рассылки с помощью сервиса Sendsay

Финансы. Инструкция

  Все выпуски  

Уроки по C# и .NET. Урок 69. Использование атрибута Flags для перечисления


Уроки по C#. Рассылки сайта progs.biz
Выпуск № 106
 
Начало > C# > Основы > Урок 69

Visual C++. NET. Классика програмирования.
Visual C++. NET. Классика програмирования (под ред. О.Е. Степаненко)
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 69.

Основы C#
Урок 69. Использование атрибута Flags для перечисления

Перед перечислением можно поставить атрибут Flags. Это означает, что мы сможем работать с таким перечислением как с набором битов. В частности, мы сможем использовать битовые операции.

Вот пример такого использования:

[Flags()]
public enum MilitaryType{
    Marine = 1,
    Land = 2,
    Cosmic = 4,
    MarineAndLand = Marine | Land,
    AllType = Marine | Land | Cosmic
}
class Program
{
    static void Main(string[] args)
    {
        MilitaryType type0 = MilitaryType.Land | MilitaryType.Cosmic;
        Console.WriteLine(type0); //Выведется "Land, Cosmic"

        Object o = Enum.Parse(typeof(MilitaryType), "Marine, Cosmic");
        MilitaryType type1 = (MilitaryType)o;
    }
}

Как вы видите, мы записали в переменную type0 результат побитовой операции двух переменных перечисляемого типа MilitaryType. В следующей строке мы выводим на консоль результат. На экран выведется "Land, Cosmic" (как следствие применения к MilitaryType атрибута Flags.

Обратное преоразование тоже действует. Так, мы с помощью метода Parse записываем в наше перечисление типа MilitaryType преобразованную строку "Marine, Cosmic". В результате этого в type1 окажется значение MilitaryType.Marine | MilitaryType.Cosmic.

Также обратите внимание, что для записи простых (т. е. не являющихся комбинацией других) значений в перечисление с атрибутом Flags надо использовать для их величин степени двойки.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


Parking.ru. Качественный виртуальный хостинг на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый выделенный хостинг на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2007 сайт progs.biz
© 2002-2007 Игорь Алексеев

В избранное