Перечисления

Обновлен: Ноябрь 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 };

См. также

Основные понятия

Основы языка C#

Встроенные типы данных

Типы значений и ссылочные типы

Ссылки

Константы (руководство по программированию на C#)