Правда ли, что enum
- это анти-паттерн и его всячески нужно избегать?
Если да, то почему?
Нет, это миф. Перечисление используется для представления определенной семантики - целочисленный тип с множеством именованных допустимых значений (хоть язык и позволяет присвоить перечислению любые значения, для этого требуется явное приведение, так что типобезопасность соблюдается). Класс с набором статических readonly-полей (или свойств) представляет другую семантику - тип, в котором некоторые значения имеют особый смысл, но другие значения тоже являются допустимыми.
См. например Colors - цвет может принимать любые значения из непрерывного диапазона RGBA-последовательностей, но для ряда часто используемых сделаны константы.
Другое дело, что иногда enum используют как замену нормальной иерархии классов: вместо наследования с переопределением абстрактных методов пихают enum-поле и один большой спагетти-метод со switch. Это действительно можно считать "антипаттерном", так как от этого страдает читаемость кода и удобство работы с ним в IDE.
Связанный вопрос: When are enums NOT a code smell?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Смысл задания: при нажатии на кнопку, у меня считается разность двух чисел, записанных в лабле и текстбоксе, после чего это число должно записаться...
В visual studio после смены языка с английского на русский отменяется ввод
При попытке установки пакета Entity Framework возникает ошибка
Имеется вот такой listbox ссылкаКак сделать так чтобы при наведении и нажатии на него не выделялся Item (Синем цветом в моем случае)