Перегрузка функции по сравнению с параметрами по умолчанию в VB.NET?

Я поддерживаю Redux. Мне кажется, хорошо, если предположить, что createMedia() сам является создателем громовых действий, который возвращает обещание.

Тем не менее, я также рекомендую переместить это определение функции в автономный режим и использовать форму «сокращенной записи объекта» из mapDispatch , а не форму функции.

6
задан Helen 21 July 2009 в 20:22
поделиться

3 ответа

Код собирается использоваться другими языками? Если так, это качает баланс к перегрузкам при тихой мысли об ответе Hamish. В частности, C# не поддерживает дополнительные параметры - еще...

По общему признанию это на самом деле не предотвратило бы кого-то использующего Ваш код от C#, это просто могла бы быть боль для них.

Если существует много параметров, и они логически представляют что-то, Вы могли бы хотеть рассмотреть инкапсуляцию их вместе, таким же образом это Process работы с ProcessStartInfo. Это особенно хорошо от C#, должного возразить инициализаторам.

Если это для конструкции, Вы могли бы также рассмотреть шаблон разработчика как вариант этого. Например, в Буферах Протокола я могу сделать что-то как:

Person jon = new Person.Builder { Name="Jon", Age=32,
                                  Spouse="Holly", Kids=3 }.Build();

который заканчивает тем, что был очень читаем, все еще создавая человека сразу (в одном выражении, и не имея необходимость видоизменять человека самом - действительно тип сообщения неизменен; это - только разработчик, который не является).

4
ответ дан 8 December 2019 в 18:43
поделиться

если параметры являются дополнительными (т.е. перегрузки являются подмножеством параметров, которые полная подпись процедуры принимает), затем или дополнительные параметры, по умолчанию имели бы больше смысла.

Если перегрузка позволяет другой тип для параметра или является семантически другим параметром, который будет интерпретироваться по-другому стандартной программой затем, перегрузки имели бы больше смысла.

9
ответ дан 8 December 2019 в 18:43
поделиться

FYI

Если вы хотите добавить параметр к функции или методу, который вызывается из других сборок, то:

Вы можете перегрузить, создав дополнительную функцию с дополнительным параметром .

Или вы можете добавить необязательный параметр, НО: вам нужно перекомпилировать все сборки, которые вызывают эту функцию, даже если им не нужно использовать новый необязательный параметр! Обычно люди этого не ожидают (особенно те, кто привык к тому, как работает VB6). По сути, вы не можете добавить в функцию новый необязательный параметр и ожидать, что он будет полностью обратно совместим. Кроме того, насколько я понимаю, если вы измените значение по умолчанию, вам нужно будет перестроить все вызывающие сборки, чтобы изменение сработало.

0
ответ дан 8 December 2019 в 18:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: