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





Да, вы абсолютно правы (по крайней мере, на мой взгляд). По иронии судьбы, хотя я обычно придирчив к этим терминам, я все же использую «передачу параметров», когда мне, вероятно, следует говорить о «передаче аргументов». Я полагаю, можно было бы возразить, что до C# 4.0, если вы вызываете метод, вам не нужны имена параметров, тогда как имена становятся частью важных метаданных, когда вы также можете указать их в аргументах.
Я согласен с тем, что это имеет значение, и эта терминология важна.
"Необязательные параметры" определенно допустимы - это добавление метаданных к параметру, когда вы не могли этого сделать раньше :) (Сказав это, это не будет необязательным с точки зрения сгенерированного IL ...)
Вы хотите, чтобы я попросил команду высказать свое мнение?
Джон, ты быстрый и вездесущий :) Думаю, я читал некоторые твои блоги или ответы, в которых ты указывал на разницу между ними. И я согласен с тем, что важна правильная терминология. Что касается обратной связи с командой, я предлагаю вам решить, насколько это важно. С уважением, Петар
Я думаю, что тогда я оставлю это - в основном потому, что даже если команда изменит документацию и т. д., Это идущий все равно будет называться миром «именованные параметры». Сколько людей называют «автоматические свойства» своим настоящим именем «автоматически реализованные свойства»?
О, вы хотели аргументы! Извините, это параметры - аргументы находятся через две двери по коридору слева.
ЗАКРЫТЬ СВОЮ КРАСНУЮ ГОСПОДУ! Ты типа меня тошнит!
Для протокола, это еще одна цитата. Я ничего не имею против @Sherm, на самом деле мне очень нравится его ответ!
Я так не думаю. Имена вполне определенно являются именами параметров, поскольку они определены и имеют конкретное значение в определении метода, где они правильно называются параметрами метода. На сайте вызова аргументы теперь могут быть помечены именем параметра, для которого они предоставляют значение.
Новый термин относится к точке зрения вызывающего метода - что логично, потому что здесь применяется функция. Раньше вызывающим абонентам приходилось думать о параметрах только как о «позиционированных параметрах». Теперь они могут опционально рассматривать их как «именованные параметры» - отсюда и название.
И все же Сэм Нг, разработчик в команде C# (blogs.msdn.com/samng/archive/2007/11/06/…), ссылается на «именованные аргументы» (blogs.msdn.com/samng/archive/2009/02/03/…)
Если вы посмотрите на code.msdn.microsoft.com/csharpfuture/Release/… и откроете документ под названием «Новые возможности в C# 4.0», вы найдете главу под названием «Именованные и необязательные аргументы».
Все сотрудники Microsoft могут сделать татуировку со словами «Именованные аргументы» на лбу, если захотят, но это не повлияет на обоснованность моих рассуждений!
Я не знаю, стоит ли его добавлять сейчас, но MS все равно называет это именованные аргументы. См. именованные и необязательные аргументы
Связанный: stackoverflow.com/questions/156767/…