Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Опубликован: 25.03.2010 | Доступ: свободный | Студентов: 1446 / 158 | Оценка: 4.31 / 4.00 | Длительность: 25:42:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Лекция 4:
Типы данных C#
Базовый класс System.Enum для работы с перечислениями
Как только в приложении объявляется перечисление, тем самым неявно объявляется тип, производный от абстрактного класса System.Enum. Например, даже вот такой пустой код
internal enum MyEnum { } internal class EntryPoint { static void Main() { } }
дает следующую диаграмму в панели Class View оболочки
Базовый класс System.Enum является абстрактным, поэтому не может напрямую иметь экземпляры (объекты), а может использоваться только как базовый в цепочке наследования. Тем не менее он определяет ряд статических методов, позволяющих обрабатывать созданные перечисления. Вот некоторые из этих методов.
Приведем пример программы, использующей статические методы класса System.Enum.
using System; namespace CHETKOB.Test { internal enum Fruit // Фрукты { Apples = 102, // Яблоки Plums = 12, // Сливы Cherries = 50, // Вишни Grapes = 11, // Виноград Pears = 211 // Груши } internal class MyClass { static void Main() { // Настройка консоли Console.Title = "Методы библиотечного класса Enum"; Console.ForegroundColor = ConsoleColor.White; Console.CursorVisible = false; // Анализируем перечисление Fruit Array fruitArray = Enum.GetValues(typeof(Fruit)); Console.WriteLine("Определяем количество членов перечисления:"); Console.WriteLine("Перечисление содержит {0} членов", fruitArray.Length); // Обходим все члены перечисления // и выводим пары "ключ-значение" Console.WriteLine("\nВыводим элементы перечисления:"); foreach (Fruit fruit in fruitArray) { Console.Write("{0, -8} = {1, -3} ",// Количество знакомест fruit.ToString(), Enum.Format(typeof(Fruit), fruit, "D")); // Decimal - десятичный Console.WriteLine("(= 0x{0})", Enum.Format(typeof(Fruit), fruit, "X"));// Hex - шестнадцатиричный } // Ищем элемент по значению Console.WriteLine(); Console.WriteLine("Ищем элемент по значению:"); foreach (Fruit fruit in fruitArray) { int value = (int)fruit; Console.WriteLine("Значение {0, -3} имеет элемент {1}", value, Enum.GetName(typeof(Fruit), value)); } // Проверяем, есть ли элемент в указанном перечислении Console.WriteLine(); Console.WriteLine("Проверяем существование элемента в перечислении:"); string element = "Apples"; if (Enum.IsDefined(typeof(Fruit), element)) Console.WriteLine("Элемент {0} в перечислении есть", element); else Console.WriteLine("Элемента {0} в перечислении нет", element); // Печатаем еще одно перечисление Console.WriteLine(); Console.WriteLine("Печатаем еще одно перечисление:"); Type weekdays = typeof(Days); foreach (string str in Enum.GetNames(weekdays)) Console.WriteLine("{0,-11} = {1}", str,// Резервирует 11 знакомест Enum.Format(weekdays, Enum.Parse(weekdays, str), "d")); Console.ReadLine(); } // Перечисление в классе. Доступ из других класов // сборки будет составным: MyClass.Days internal enum Days { Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье }; } }Листинг 4.12. Использование статических методов класса Enum