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)?
Використовуйте переліки, якщо у вас є значення, які, як ви знаєте, не зміняться, як-от дні місяця, дні, кольори, колода карт тощо.