Недавно я обнаружил, что мне нужно (да, нужно) определить абсурдно длинные операторы switch
и объявления enum
в коде C#, но мне интересно, как люди считают, что это лучший способ разделить их на логические подразделы. В моей ситуации как значения перечисления, так и случаи (которые основаны на значениях перечисления) имеют довольно четкие группы, но я немного не уверен, как отразить это в коде.
Обратите внимание, что в моем коде у меня есть примерно 5 групп от 10 до 30 значений/случаев перечисления в каждой.
Я могу представить себе три смутно разумных варианта:
- Определите блоки
#region
вокруг всех логических групп значений case/enum в объявлении (необязательно разделенных пустыми строками). - Прокомментируйте каждую группу ее именем, поставив пустую строку перед каждым комментарием имени группы.
- Ничего не делайте - просто оставьте переключатель/перечисление в виде огромного списка случаев/значений.
Что вы предпочитаете? Не могли бы вы рассматривать перечисления и переключатели отдельно? (Мне это показалось бы немного странным.) Теперь я бы не сказал, что на этот вопрос есть какой-то правильный/неправильный ответ, хотя мне, тем не менее, было бы очень интересно услышать каков общий консенсус мнений.
Примечание 1. Эта ситуация, когда у меня потенциально может быть очень длинное объявление enum из 50/100+ значений, к сожалению, неизбежна (и аналогично с переключателем), поскольку я пытаюсь написать лексер (токенизатор) , и, таким образом, это представляется наиболее разумным подходом по нескольким причинам.
Примечание 2: я полностью осознаю, что уже существует несколько повторяющихся вопросов о том, следует ли использовать регионы в общем коде (в основном для структурирования классов), но я чувствую, что мой вопрос здесь гораздо более конкретен и еще не обращался.