Для каждой последующей символически обозначаемой константы в перечислении задается целое значение, которое на единицу больше, чем у предыдущей константы. По умолчанию значение первой символически обозначаемой константы в перечислении равно нулю. Следовательно, в приведенном выше примере перечисленияAppleконстантаJonathanравна нулю, константаGoldenDel— 1, константаRedDel— 2 и т.д.
Доступ к членам перечисления осуществляется по имени их типа, после которого следует оператор-точка. Например, при выполнении фрагмента кода
Console.WriteLine(Apple.RedDel + " имеет значение " +
(int)Apple.RedDel) ;
выводится следующий результат.
RedDel имеет значение 2
Как показывает результат выполнения приведенного выше фрагмента кода, для вывода перечислимого значения используется его имя. Но для получения этого значения требуется предварительно привести его к типуint.
Ниже приведен пример программы, демонстрирующий применение перечисленияApple.
using System;
class EnumDemo {
enum Apple { Jonathan, GoldenDel, RedDel, Winesap,
Cortland, McIntosh };
static void Main { string[] color = {
"красный",
"желтый",
"красный",
"красный",
"красный",
"красновато-зеленый"
};
Apple i;
// Использовать переменную i для циклического
// обращения к членам перечисления.
for(i = Apple.Jonathan; i <= Apple.McIntosh; i++)
Console.WriteLine(i + " имеет значение " + (int)i);
Console.WriteLine ;
// Использовать перечисление для индексирования массива. for(i = Apple.Jonathan; i <= Apple.McIntosh; i++)
Console.WriteLine("Цвет сорта " + i + " — " + color[ (int)i]);
}
}
Ниже приведен результат выполнения этой программы.
Jonathan имеет значение О GoldenDel имеет значение 1 RedDel имеет значение 2 Winsap имеет- значение 3 Cortland имеет значение 4 McIntosh имеет значение 5
Цвет сорта Jonathan - красный
Цвет сорта GoldenDel - желтый
Цвет сорта RedDel - красный
Цвет сорта Winsap - красный
Цвет сорта Cortland - красный
Цвет сорта McIntosh - красновато-зеленый