НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування C#. Уроки W3Schools українською для початківців

En Es De

C# Enum


C# Переліки

Клас enum — це спеціальний клас, який представляє групу констант (незмінні/змінні лише для читання).

Щоб створити enum, використовуйте ключове слово enum (замість class чи interface) і розділіть елементи enum комою:

Приклад

enum Level
{
  Low,
  Medium,
  High
}

Ви можете отримати доступ до елементів enum за допомогою синтаксису крапки:

Level myVar = Level.Medium;
Console.WriteLine(myVar);
Спробуйте самі »

Enum є скороченням від "enumerations", що означає "спеціально перелічені".


Enum всередині класу

Ви також можете мати enum усередині класу:

Приклад

class Program
{
  enum Level
  {
    Low,
    Medium,
    High
  }
  static void Main(string[] args)
  {
    Level myVar = Level.Medium;
    Console.WriteLine(myVar);
  }
}

Виведення буде:

Medium
Спробуйте самі »

Enum значення

За замовчуванням перший елемент переліку має значення 0. Другий має значення 1 і так далі.

Щоб отримати ціле значення з елемента, ви повинні явно перетворити елемент на int (зробити кастинг):

Приклад

enum Months
{
  January,    // 0
  February,   // 1
  March,      // 2
  April,      // 3
  May,        // 4
  June,       // 5
  July        // 6
}

static void Main(string[] args)
{
  int myNum = (int) Months.April;
  Console.WriteLine(myNum);
}

Виведення буде:

3
Спробуйте самі »

Ви також можете призначити власні значення enum, і наступні елементи оновлять свої номери відповідно:

Приклад

enum Months
{
  January,    // 0
  February,   // 1
  March=6,    // 6
  April,      // 7
  May,        // 8
  June,       // 9
  July        // 10
}

static void Main(string[] args)
{
  int myNum = (int) Months.April;
  Console.WriteLine(myNum);
}

Виведення буде:

7
Спробуйте самі »

Enum в інструкції Switch

Переліки часто використовуються в інструкціях switch для перевірки відповідних значень:

Приклад

enum Level
{
  Low,
  Medium,
  High
}

static void Main(string[] args)
{
  Level myVar = Level.Medium;
  switch(myVar)
  {
    case Level.Low:
      Console.WriteLine("Low level");
      break;
    case Level.Medium:
       Console.WriteLine("Medium level");
      break;
    case Level.High:
      Console.WriteLine("High level");
      break;
  }
}

Виведення буде:

Medium level
Спробуйте самі »

Чому і коли використовувати переліки (enum)?

Використовуйте переліки, якщо у вас є значення, які, як ви знаєте, не зміняться, як-от дні місяця, дні, кольори, колода карт тощо.