progs.biz  
Начало>C#>Основы>Урок 70
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Разработка Windows-приложений на Visual Basic.NET и Visual C#.NET. Учебный курс MCAD/MCSD.
 Разработка Windows-приложений на Visual Basic.NET и Visual C#.NET. Учебный курс MCAD/MCSD.
Заказать на Озоне



Яндекс-цитирования

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

Одна из часто встрчающихся задач для перечисления с атрибутом Flags - это выяснение, присутствует ли некое значение перечисления в соотвествующей переменной. Например

Вот пример такого кода:

// Объявление перечисления.
[Flags()]
public enum MilitaryType
{
    Marine = 1,
    Land = 2,
    Cosmic = 4,
    MarineAndLand = Marine | Land
}
class Program
{
    static void Main(string[] args)
    {
        MilitaryType type = MilitaryType.MarineAndLand;
        // Содержится ли в переменной значение MilitaryType.Marine?
        if ((type & MilitaryType.Marine) == MilitaryType.Marine)
        {
            Console.WriteLine("Marine");
        }
        else {
            Console.WriteLine("Isn't marine");
        }
        // Содержится ли в переменной значение MilitaryType.Cosmic?
        if ((type & MilitaryType.Marine) == MilitaryType.Cosmic)
        {
            Console.WriteLine("Cosmic");
        }
        else
        {
            Console.WriteLine("Isn't cosmic");
        }
        // Содержится ли в переменной значение MilitaryType.MarineAndLand?
        if ((type & MilitaryType.MarineAndLand) == MilitaryType.MarineAndLand)
        {
            Console.WriteLine("MarineAndLand");
        }
        else
        {
            Console.WriteLine("Isn't marine or land");
        }
    }
}

Как вы видите, мы тут используем побитовое И. Для данного фрагмента на экране выведется два положительных ответа (для первой и последней проверки) и один отрицательный (для второй проверки).

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


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