C# Enum(Enumeration) із прикладом
⚡ Розумний підсумок
Перерахування в C# визначають іменований набір константних цілочисельних значень, таких як дні тижня, що спрощує читання та підтримку коду. Ключове слово enum оголошує ці фіксовані константи один раз для повторного використання в програмі.

Перерахування C#
Перерахування використовується в будь-якій мові програмування для визначення постійного набору значень. Наприклад, дні тижня можна визначити як перелік і використати будь-де в програмі. У C# перерахування визначається за допомогою ключового слова 'enum'.
Давайте розглянемо приклад того, як ми можемо використовувати ключове слово 'enum'.
У нашому прикладі ми визначимо перелік днів, який буде використовуватися для зберігання днів тижня. Для кожного прикладу ми будемо змінювати лише основну функцію в нашому файлі Program.cs.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { enum Days{Sun,Mon,tue,Wed,thu,Fri,Sat}; static void Main(string[] args) { Console.Write(Days.Sun); Console.ReadKey(); } } }
Code Пояснення:
- "перелік" тип даних вказується для оголошення переліку. Ім'я перерахування - дні. Як значення переліку вказуються всі дні тижня.
- Нарешті, функція console.write використовується для відображення одного зі значень переліку.
Якщо наведений вище код введено належним чином і програма виконана успішно, буде показано наступний вихід.
вихід:
З результату ви можете побачити, що значення «Sun» перерахування відображається на консолі.
Навіщо використовувати перерахування в C#?
Переліки роблять програму легшою для читання, безпечнішою та простішою в обслуговуванні. Замість розкидання незрозумілих чисел, які іноді називають магічними числами, по всьому коду, перелік надає кожному значенню описову назву, яка вказує на його призначення.
- читаність: Назва, така як Days.Fri, набагато зрозуміліша, ніж число 5, тому кожен, хто читає код, одразу розуміє її значення.
- Безпека типу: Змінна, оголошена з типом переліку, може містити лише один із визначених членів, що запобігає потраплянню недійсних значень.ping дюйм
- Ремонтопридатність: Пов'язані константи знаходяться в одному місці, тому додавання або перейменування значення послідовно оновлює всю програму.
- Прив'язка даних: Такі фреймворки, як WPF та ASP.NET, можуть прив'язувати перелік до випадаючого списку, що робить переліки корисними для створення користувацьких інтерфейсів.
Оскільки компілятор перевіряє кожне присвоєння на відповідність дозволеним членам, переліки також допомагають виявляти помилки на ранній стадії, ще до запуску програми.
Присвоєння користувацьких значень переліку C#
За замовчуванням C# присвоює першому члену переліку значення 0 та збільшує кожен наступний член на одиницю. У наведеному вище переліку Days Sun дорівнює 0, Mon дорівнює 1, а Sat дорівнює 6. Ви можете змінити ці значення за замовчуванням, призначивши явні числа.
- Явні значення: Запис enum Level {Low = 1, Medium = 5, High = 10} встановлює кожному члену вибране число замість послідовності за замовчуванням.
- Часткове завдання: Якщо присвоїти значення лише деяким членам, компілятор продовжить нумерацію, починаючи з останнього присвоєного значення, для наступних членів.
- Базовий тип: Перелік за замовчуванням зберігає свої члени як цілі числа, але ви можете базувати його на типах byte, short або long, щоб заощадити пам'ять або розширити діапазон.
Користувацькі значення корисні, коли числа мають відповідати зовнішній системі, такій як коди бази даних або константи протоколу, щоб перерахування точно відображало реальні дані.
Як конвертувати перерахування C# у цілі числа, рядки та прапорці
У C# часто потрібно переміщувати значення перерахування в іншу форму, наприклад, зберігати його як число або зчитувати з тексту. Ці перетворення відбуваються кількома стандартними способами.
- Перерахування в ціле число: Явне приведення типів, таке як (int)Days.Wed, повертає ціле число, яке корисне для зберігання або арифметичних дій.
- int до перерахування: Приведення типів у іншому напрямку, наприклад, (Days)3, перетворює число назад на відповідний член переліку.
- Рядок для перерахування: Enum.Parse та безпечніший Enum.TryParse перетворюють таке ім'я, як «Fri», на член Days.Fri без викидання недійсного тексту.
- Перерахування в рядок: Виклик ToString для будь-якого члена повертає його ім'я, тому Days.Sun.ToString() створює «Sun» для відображення або реєстрації.
- Учасники лістингу: Enum.GetValues та Enum.GetNames повертають кожне значення або ім'я, що допомагає під час заповнення меню або перевірки введених даних.
Коли перерахування має представляти комбінацію варіантів, а не один, застосуйте атрибут Flags і надайте кожному члену степінь двох, наприклад, 1, 2, 4 та 8. Потім ви можете об'єднати члени за допомогою побітового оператора OR та перевірити наявність певного варіанта за допомогою методу HasFlag.
Ці методи перетворення дозволяють переліку чітко переміщатися між читабельними іменами, збереженими числами та комбінованими наборами прапорців, зберігаючиping решта програми є як типобезпечною, так і легкою для сприйняття.


