Введение в Enum в C #
Enum - это зарезервированное ключевое слово в C #, которое представляет перечисление. Перечисление - это пользовательский тип в C #, который содержит набор именованных констант. Каждая константа в наборе имеет значение (по умолчанию целые числа). К константам можно обращаться как по именам, так и по значениям. Таким образом, имена не могут быть продублированы в перечислении.
Синтаксис перечисления прост. Он начинается с ключевого слова enum, за которым следует имя переменной, за которым следует набор именованных констант, заключенных в фигурные скобки. Конечно, это заканчивается точкой с запятой.
Синтаксис:
enum ();
Пример:
enum Day ( Sun, Mon, Tue, Wed, Thu, Fri, Sat );
enum Month ( Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec );
Работа Enum в C #
Давайте попробуем понять, как работает enum в C #. Перечисления имеют базовый тип в C #. Это означает, что каждой константе в перечислении будет присвоено значение базового типа. Основной тип enum в C # по умолчанию является целым числом.
В вышеприведенный день перечисления мы объявили семь констант. Он имеет базовый тип по умолчанию целое число. Таким образом, каждой константе будет присвоено целочисленное значение. По умолчанию значение начинается с 0. Таким образом, Sun будет присвоено 0, Mon будет назначено 1, Tue будет назначено 2 и так далее.
Давайте возьмем другой пример. Мы бы присвоили значение 1 Солнцу. Это заставит компилятор начинать присваивание с 1 вместо 0. Затем мы присваиваем значение 8 для Thu. Затем компилятор продолжит присваивание с 8 лет.
Пример № 1
using System;
public class Program
(
enum Day
(
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
);
public static void Main()
(
for (int i = 0; i < 10; i++)
(
Console.WriteLine((Day)i);
)
)
)
Выход:
Примером из реальной жизни может быть различный этап в пути клиента. Конечно, все константы могут быть объявлены отдельно и им присвоены соответствующие целочисленные значения, но использование enum устраняет необходимость запоминания целочисленных значений для каждого этапа, а также значительно облегчает понимание кода.
Пример № 2
using System;
public class Program
(
enum ClientJourney
(
Introduced = 1,
UnderReview = 2,
Reviewed = 3,
Documentation = 4,
Onboarded = 5,
Declined = 6,
Deboarded = 7
);
public static void Main()
(
Console.WriteLine("The various stages in the journey of a client are:\n");
foreach (string str in Enum.GetNames(typeof(ClientJourney)))
(
Console.WriteLine(str);
)
)
)
Выход:
Методы перечисления в C #
Ниже приведены некоторые методы Enum в C #:
1. GetName (Тип, Int32)
Метод GetName возвращает именованную константу, сопоставленную с указанным значением в перечислении. Если в этом значении нет именованной константы, она возвращает пустую строку.
Этот метод ожидает два параметра - один является типом, т.е. самим перечислением, а другой - указанным значением.
Код:
В том же примере, что и в приведенные выше дни, мы будем печатать именованные константы через метод GetName.
using System;
public class Program
(
enum Day
(
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
)
;
public static void Main()
(
for (int i = 0; i < 10; i++)
(
Console.WriteLine(Enum.GetName(typeof(Day), i));
)
)
)
Выход:
2. GetNames (Тип)
Обратите внимание на приведенный выше пример, как нам пришлось использовать цикл for для получения всех именованных констант перечисления. Метод GetName более полезен, когда нам нужно одиночное или, возможно, ограниченное количество именованных констант.
Чтобы получить все именованные константы, у нас есть другой метод GetNames (). Он принимает перечисление в качестве входного параметра.
Код:
В том же примере, что и выше, мы распечатали именованные константы с помощью метода GetNames.
using System;
public class Program
(
enum Day
(
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
)
;
public static void Main()
(
foreach(string namedConstant in Enum.GetNames(typeof(Day)))(
Console.WriteLine(namedConstant);
)
)
)
Выход:
3. GetValues (Тип)
Метод GetValues () используется для получения базовых сопоставленных значений для каждой из именованных констант перечисления.
Код:
В том же примере, что и выше, мы распечатали именованные константы с помощью метода GetNames.
using System;
public class Program
(
enum Day
(
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
)
;
public static void Main()
(
foreach (int i in Enum.GetValues(typeof(Day)))
(
Console.WriteLine(i);
)
)
)
Выход:
Правила для Enum в C #
- Enum - это тип, а не переменная / константа / метод.
- Перечисленные именованные константы не могут быть дублированы. Они должны быть уникальными
- Основной тип перечисления не может быть char.
- Основной тип enum по умолчанию - целое число.
- По умолчанию значения, присвоенные именованным константам enum, начинаются с 0, увеличиваясь на 1 для каждой последующей именованной константы.
Преимущества Enum в C #
Перечисления являются очень выгодной практикой кодирования. Они используются для определения набора констант для приложения или программы. Таким образом, набор остается постоянным и избегает хаоса в программе, особенно когда это огромное приложение с участием нескольких разработчиков.
Существует много сценариев, в которых можно использовать перечисления. Дни недели, месяцы года, коэффициенты пересчета для температур, коэффициенты пересчета для часовых поясов или любые данные основной таблицы для приложения. Это делает код более читабельным и легким для понимания.
Вывод
Таким образом, мы видели использование enum в C #. Мы узнали, как это работает и что может быть его практическим использованием. Мы поняли правила, которые необходимо соблюдать при использовании перечислений. Есть также методы, которые помогают нам получить доступ и отформатировать enum. Рекомендуется максимально использовать перечисления в вашем коде. Это поможет вам соблюдать правила кодирования и изучать перечисления.
Рекомендуемые статьи
Это руководство по Enum в C #. Здесь мы обсудим работу, методы, правила и преимущества Enum в C # с примерами и реализацией кода. Вы также можете посмотреть следующие статьи, чтобы узнать больше -
- Палиндром в C # с примерами
- Как получить доступ к пространствам имен в C #?
- Топ 3 типов шаблонов в C #
- Рекурсивная функция в C #
- Продолжить работу над оператором в C # с примерами
- Факторы в R | Как создать | преимущества