Разве в C # 4.0 новую функцию «именованных параметров» нельзя назвать «именованными аргументами»?

StackOverflow https://stackoverflow.com/questions/306085

Вопрос

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top