C# Уроки: Перечисления (Enum) — чистый и понятный код

Перечисления (enum) — удобный способ группировки связанных констант. Они предотвращают ошибки, связанные с неверными значениями, и улучшают читаемость кода.

Работа с большим количеством констант

Рассмотрим класс Animal, хранящий информацию о породах животных. При большом количестве пород ручной ввод названий затруднителен и подвержен ошибкам (опечатки, забытые названия).

Использование перечислений

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

Пример реализации

Класс Animal с полем Breed (порода):

public class Animal
{
    public string Breed { get; set; }

    public Animal(string breed)
    {
        Breed = breed;
    }
}

Перечисление BreedType для хранения пород:

public enum BreedType
{
    Dog,
    Cat,
    Bird,
    Tiger
}

Модифицированный класс Animal, использующий перечисление:

public class Animal
{
    public BreedType Breed { get; set; }

    public Animal(BreedType breed)
    {
        Breed = breed;
    }
}

Пример создания объекта класса Animal:

Animal dog = new Animal(BreedType.Dog);
Console.WriteLine(dog.Breed); // Выведет "Dog"

В примере используется перечисление BreedType для определения породы. Выбор из списка делает код понятнее и менее подверженным ошибкам, чем ввод строки вручную.

Преимущества

  • Удобство: Удобный и понятный способ работы с набором связанных констант.
  • Безопасность: Предотвращение ошибок, связанных с неверным вводом значений.
  • Читаемость: Повышение читаемости кода благодаря именованным константам.

Перечисления — мощный инструмент C#, применяемый не только для пород животных, но и для других задач (направления движения, типы машин и т.д.), повышая качество и надежность кода.

Перечисления в C# упрощают работу с наборами связанных констант, повышая читаемость и надежность кода. Выбор значения из списка снижает вероятность ошибок по сравнению с ручным вводом.

Что будем искать? Например,программа