Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Заметка
Эта статья является спецификацией компонентов. Спецификация служит проектным документом для функции. Она включает предлагаемые изменения спецификации, а также информацию, необходимую во время проектирования и разработки функции. Эти статьи публикуются до тех пор, пока предложенные изменения спецификации не будут завершены и включены в текущую спецификацию ECMA.
Может возникнуть некоторое несоответствие между спецификацией компонентов и завершенной реализацией. Эти различия были зафиксированы в соответствующих заметках встречи по проектированию языка (LDM) .
Дополнительные сведения о процессе внедрения спецификаций функций в стандарт языка C# см. в статье о спецификациях .
Проблема чемпиона: https://github.com/dotnet/csharplang/issues/111
Сводка
Разрешить использовать подстановочные символы (_) в качестве параметров лямбда-выражений и анонимных методов.
Например:
- лямбда-коды:
(_, _) => 0,(int _, int _) => 0 - анонимные методы:
delegate(int _, int _) { return 0; }
Мотивация
Неиспользуемые параметры не должны называться. Намерение отбросов ясно, т. е. они неиспользованы или отброшены.
Подробный дизайн
Параметры метода — §15.6.2 В списке лямбда-метода или анонимного метода с несколькими параметрами с именем _, такие параметры являются отменными параметрами.
Примечание. Если один параметр называется _ то это обычный параметр по причинам обратной совместимости.
Параметры игнорирования не добавляют никаких имен в области видимости.
Обратите внимание, что они не приводят к сокрытию имен _ (с подчеркиванием).
Простые имена (§12.8.4) Если K равно нулю и simple_name находится в блоке , и если блок (или заключающий блок) локального пространства объявления переменной (объявления — §7.3) содержит локальную переменную, параметр (за исключением параметров-пустышек) или константу с именем I, то simple_name относится к этой локальной переменной, параметру или константе и классифицируется как переменная или значение.
Области — §7.7 За исключением параметров отмены, область параметра, объявленного в лямбда-выражении (§12.19), — это тело анонимной функции этого лямбда-выражения. За исключением параметров отмены, область параметра, объявленного в анонимном методе (§12.19), — это блок этого анонимного метода.
Связанные разделы спецификаций
- Соответствующие параметры — §12.6.2.2
C# feature specifications