Насколько я понимаю, вы можете использовать модули отложенной загрузки для каждой имеющейся функции.
Смотрите мой my stackblitz для более подробной информации.
Когда вы обновляете страницу со стеком, она остается на той же странице.
Компилятор C# дает предупреждение, если Вы делаете это высказывание, что повреждение является недостижимым кодом. Таким образом в моей книге это - невоспитанность, чтобы иметь и возврат и повреждение.
Нет, пропуск не является плохим стилем - включение является плохим стилем. Это - недостижимые операторы. Избавьтесь от них.
Мне нравится то, что случаи возвращаются непосредственно вместо того, чтобы установить локальную переменную и затем возвратиться просто внизу - это означает, что невероятно ясно при чтении кода, который это действительно просто должно возвратить, и это - все.
Заметка на полях с точки зрения переключения во-первых:
Что касается того, является ли использование оператора переключения правильным поступком здесь, это действительно зависит от других вещей. Имело бы смысл использовать полиморфный тип вместо этого? Если Вы находитесь в Java, Вы могли бы использовать умное перечисление? (Можно подражать им в C#, но нет такой же поддержки.)
Я сказал бы, что это должно, по крайней мере, запросить рассматривающие различные проекты - но это может быть самый простой способ сделать то, что Вы хотите.
По-моему, я опустил бы ключевое слово 'повреждения'. Я лично думаю, что это помогает напомнить людям, что 'Выполнение закончилось! Ничто больше для наблюдения здесь!'.
Я сделал бы небольшое изменение:
switch(some case) {
case 1:
// compute something ...
break;
case 2:
// compute something ...
break;
/* some more cases ... */
case X:
// compute something ...
break;
default:
// do something
break;
}
return something;
Я не уверен, как литеральный, которым код предназначается, чтобы быть, таким образом, некоторые из этих наблюдений не могут быть применимыми...
"случай 1", Если Вы - действительно жесткое кодирование numers как это, я думаю, что это - плохой стиль и необходимо изучить использование перечисления.
Если Вы просто возвращаете что-то и нет никакой дополнительной логики в подмножестве случаев, Вы могли бы рассмотреть помещение "somethings" в массиве или словаре и просто обращении к ним их индексом вместо того, чтобы использовать оператор переключения...
возвратите somethings [индекс]
Запах кода подразумевает проблему проектирования. Это - просто проблема форматирования. Я думаю, что большинство людей согласилось бы, что версия с опущенными повреждениями выше.
Повреждение избыточно.
Некоторое эмпирическое правило, всегда хорошо выйти из функции в одном месте только, Но так как это правило было сделано, Выгода Попытки была изобретена (ООП goto).
Если Вы сохраняете тот же стиль на всем протяжении своего приложения, я предполагаю, что можно жить с возвратом в переключателе.
Запах кода здесь является твердыми кодированными значениями в операторах выбора.
Что касается возвратов это - больше вопрос вкуса и хорошего решения. Уверенный, если Ваш случай охватывает mutiple страницы, легче читать, если возврат находится в случае, но затем проблемой является большой переключатель для начала.
Personnaly я предпочитаю единственную опцию возврата, потому что, если когда-нибудь необходимо добавить еще некоторую обработку затем, более дешево осуществить рефакторинг, чем посещение всех случаев. Кроме того, если дали кому-то еще для рефакторинга у них не будет искушения скопировать, вставляют код в каждом случае, наименьшее я надеялся бы так..., если они делают они лучше надеются, что я не тот, делающий их обзор кода (для вставки копии, очевидно).
Операторы Switch сами по себе являются запахом кода.
В соответствии с тем, что сказано в l99057j, если все, что вы делаете, это сопоставляете входные данные с постоянными значениями, это место для соответствующего поиска структура, такая как массив / список для последовательных входов или словарь / карта для разреженных, а не оператор switch. Если вы что-то вычисляете, то значением будет делегат, который вы вызываете с вводом.