Одна опасность с params
Ключевым словом является, если после Звонки на метод были закодированы,
params
до изменения подписи были совместимы с типом params
Параметр Эти вызовы будут продолжать компилироваться с одним или несколькими выражениями, ранее предназначенными для required . Параметры обрабатываются как необязательный параметр params
. Я просто столкнулся с худшим возможным случаем этого: параметр params
был для Type object[]
.
Это примечательно, потому что разработчики привыкли к тому, что компилятор шлепает их запястья с гораздо более распространенным сценарий, в котором параметры удаляются из метода со всеми параметрами required (потому что ожидается ожидаемое число ожидаемых параметров).
Для меня это не стоит ярлыка. (Type)[]
без params
будет работать с 0 до бесконечности № параметров без необходимости переопределения. В худшем случае вам придется добавить , new (Type) [] {}
к вызовам, где он не применяется.
Btw, imho, самая безопасная (и наиболее читаемая практика):
params
или нет), он позволяет вам искать вызовы, в которых проходит конкретный необязательный параметр (и, следовательно, скорее всего, это не или в лизинге t имеет возможность быть не значением по умолчанию), (ПРИМЕЧАНИЕ: Причины 1.2. и 1.3. может облегчить и уменьшить вероятность ошибки даже при кодировании начальных вызовов, не говоря уже о том, что вызовы должны быть прочитаны и / или изменены.)) и
ПРИМЕЧАНИЕ:
VS должен иметь опцию, которая генерирует фрагменты метода вызова с Именованными параметрами (по одной на строку, конечно, P) и параметр компилятора, который требует Именованные параметры (аналогично по понятию Option Explicit в VB, который, кстати, требование было умножено один раз так же, как и возмутительно, но сейчас довольно требуется по «лучшей практике»). Фактически, «в мой день»;), в 1991 году, всего за несколько месяцев до моей карьеры, еще до того, как я использовал (или даже видел) язык с Именованными параметрами, у меня был анти-sheeple / «просто потому, что вы можете, не означает, что вы должны / не слепо« разрезать концы жаркого », достаточно, чтобы имитировать его (используя встроенные комментарии), не увидев, что кто-то это делает. Не использовать Именованные параметры (а также другой синтаксис, который сохраняет «драгоценные» нажатия клавиш исходного кода) является реликтом эры перфокарта, когда большинство этих синтаксисов началось. Нет никакого оправдания для этого с современным оборудованием и IDE и гораздо более сложным программным обеспечением, где читаемость много, многое, MUCH более важно. «Код читается гораздо чаще, чем написано». Пока вы не дублируете неавтоматизированный код, каждое нажатие клавиши может стоить экспоненциально больше, когда кто-то (даже вы) пытается прочитать его позже.