Перечисления
Обновлен: Ноябрь 2007
C# позволяет создать собственный набор именованных констант с помощью ключевого слова enum. Эти типы данных позволяют объявить набор имен или других значений литералов, определяющих все возможные значения, которые могут быть назначены переменной.
Например, если в программе ведется работа с днями недели, может потребоваться создать новый тип с именем DayOfWeek. Затем можно объявить новую переменную типа DayOfWeek, а затем присвоить ей значение. Использование этого типа данных способствует повышению удобочитаемости кода, кроме того, снижается вероятность назначения переменной недопустимого или неожиданного значения.
public enum DayOfWeek
{
Sunday = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6
}
class Program
{
static void Main()
{
DayOfWeek day = DayOfWeek.Monday;
int i = (int) DayOfWeek.Monday;
System.Console.WriteLine(day); // displays Monday
System.Console.WriteLine(i); // displays 1
}
}
Дополнительные способы перечисления
Далее представлено несколько дополнительных функций типов данных enum, которые могут быть полезны.
Отображение значений литералов перечисления
Для доступа к имени или словам, используемым в типе данных enum можно применить метод ToString(), как показано далее.
DayOfWeek day = DayOfWeek.Wednesday;
System.Console.WriteLine(day.ToString()); // displays Wednesday
Установка значений по умолчанию
По умолчанию первым значением в перечисляемом типе является ноль. Можно указать другое начальное значение, как показано далее.
enum Color { Red = 1, Yellow = 2, Blue = 3 };
Фактически, можно определить уникальные целочисленные значения для всех значений.
enum Medal { Gold = 30, Silver = 20, Bronze = 10 };
См. также
Основные понятия
Типы значений и ссылочные типы