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