TOC

This article has been localized into Russian by the community.

Дополнительные темы:

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

Перечисления - это специальные наборы именованных значений, которые сопоставляются набору чисел, обычно целых чисел. Они пригодятся, когда вы хотите иметь возможность выбирать между набором постоянных значений, и с каждым возможным значением, относящимся к числу, они могут быть использованы в широком диапазоне ситуаций. Как вы увидите в нашем примере, перечисления определены для классов, внутри нашего пространства имен. Это означает, что мы можем использовать перечисления из всех классов в одном пространстве имен.

Это пример простого перечисления, чтобы показать их предназначение.

public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

Все эти возможные значения соответствуют цифрам. Если мы не зададим их специально, первое значение будет равно 0, следующее-1 и так далее. Следующий фрагмент кода докажет это, а также покажет, как мы используем одно из возможных значений из перечисления:

using System;

namespace ConsoleApplication1
{
    public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

    class Program
    {
        static void Main(string[] args)
        {
            Days day = Days.Monday;
            Console.WriteLine((int)day);
            Console.ReadLine();
        }
    }
}

На выходе будет ноль, потому что в понедельник карта величин сбивается до нуля. Очевидно, мы можем изменить это - изменить строку на что-то вроде этого:

public enum Days { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

Если вы снова запустите наш код, то увидите, что понедельник теперь равен 1 вместо 0. Все остальные значения будут на одно число выше, как результат. Другим значениям также можно назначить другие номера. Из-за прямого сопоставления с числом можно также использовать числа для получения соответствующего значения из перечисления, например:

Days day = (Days)5;
Console.WriteLine(day);
Console.ReadLine();

Еще одна интересная особенность перечислений является тот факт, что вы также можете использовать строковое представление значение. Измените приведенный выше пример на что-то вроде этого:

static void Main(string[] args)
{
    string[] values = Enum.GetNames(typeof(Days));
    foreach(string s in values)
        Console.WriteLine(s);
    
    Console.ReadLine();
}

Класс Enum содержит ряд полезных методов для работы с перечислениями.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!