|
Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Опубликован: 25.03.2010 | Доступ: свободный | Студентов: 1447 / 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

