Разве в C # 4.0 новую функцию «именованных параметров» нельзя назвать «именованными аргументами»? - PullRequest
3 голосов
/ 20 ноября 2008

Полагаю, могут быть исторические причины для такого именования, и что другие языки имеют аналогичную функцию, но мне также кажется, что у параметров всегда было имя в C #. Аргументы безымянные. Или есть конкретная причина, по которой была выбрана эта терминология?

Ответы [ 4 ]

11 голосов
/ 20 ноября 2008

О, вы хотели аргументов ! Извините, это параметры - аргументы - две двери внизу зала слева.

6 голосов
/ 20 ноября 2008

Да, вы абсолютно правы (на мой взгляд, в любом случае). По иронии судьбы, хотя я обычно привередлив в этих терминах, я все еще использую «передачу параметров», когда мне, вероятно, следует говорить о «передаче аргументов». Я полагаю, можно утверждать, что до C # 4.0, если вы вызываете метод, вам нет дела до имен параметров, тогда как имена становятся частью значимых метаданных, когда вы также можете указать их в аргументах.

Я согласен, что это имеет значение, и что важна терминология.

«Необязательные параметры», безусловно, хорошо - это добавление метаданных к параметру, когда вы не могли этого сделать раньше :) (Сказав это, это не будет необязательным с точки зрения сгенерированного IL ...) 1005 *

Хотите, чтобы я попросил команду высказать свое мнение?

3 голосов
/ 09 февраля 2009

Я так не думаю. Имена вполне определенно являются именами параметров, так как они определены и имеют конкретное значение в определении метода, где они правильно называются параметрами метода. На сайте вызовов теперь можно пометить аргументы именем параметра, для которого они предоставляют значение.

Новый термин относится к перспективе вызывающего метода - что логично, потому что именно там применяется функция. Ранее вызывающим абонентам приходилось думать только о параметрах как о «позиционированных параметрах». Теперь они могут опционально обращаться с ними как с «именованными параметрами» - отсюда и имя.

0 голосов
/ 22 декабря 2013

Я не знаю, стоит ли добавлять его сейчас, но MS все равно называет это именованные аргументы . См. именованные и необязательные аргументы

...