Основы C# Урок 70. Использование атрибута Flags для перечисления 2
Одна из часто встрчающихся задач для перечисления с атрибутом Flags - это выяснение, присутствует ли некое значение перечисления в соотвествующей переменной. Например
Вот пример такого кода:
// Объявление перечисления.
[Flags()]
publicenum MilitaryType
{
Marine = 1,
Land = 2,
Cosmic = 4,
MarineAndLand = Marine | Land
}
class Program
{
staticvoid 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");
}
}
}
Как вы видите, мы тут используем побитовое И. Для данного фрагмента на экране выведется два положительных ответа (для первой и последней проверки) и один отрицательный (для второй проверки).
Parking.ru. Качественный виртуальный хостинг на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый выделенный хостинг на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru