다음을 통해 공유


람다 삭제 매개 변수

메모

이 문서는 기능 사양입니다. 사양은 기능의 디자인 문서 역할을 합니다. 여기에는 기능 디자인 및 개발 중에 필요한 정보와 함께 제안된 사양 변경 내용이 포함됩니다. 이러한 문서는 제안된 사양 변경이 완료되고 현재 ECMA 사양에 통합될 때까지 게시됩니다.

기능 사양과 완료된 구현 간에 약간의 불일치가 있을 수 있습니다. 이러한 차이는 관련된 언어 디자인 모임(LDM) 노트에 기록되어 있습니다.

사양문서에서 C# 언어 표준에 기능 사양을 채택하는 과정에 대해 자세히 알아볼 수 있습니다.

요약

폐기(_)를 람다 및 익명 메서드의 매개 변수로 사용할 수 있게 허용합니다. 예를 들어:

  • 람다: (_, _) => 0, (int _, int _) => 0
  • 익명 메서드: delegate(int _, int _) { return 0; }

동기

사용하지 않는 매개 변수의 이름을 지정할 필요가 없습니다. 삭제의 의도는 명확합니다. 즉, 사용되지 않음/폐기됩니다.

상세 디자인

메서드 매개 변수 - §15.6.2 매개 변수가 둘 이상 있는 람다 또는 익명 메서드의 매개 변수 목록에서 _로 명명된 매개 변수는 버림 매개 변수입니다. 참고: 단일 매개 변수의 이름이 _ 경우 이전 버전과의 호환성을 위한 일반 매개 변수입니다.

무시 매개 변수는 어떤 범위에도 이름을 도입하지 않습니다. 이는 _(밑줄) 이름을 숨기지 않는다는 것을 의미합니다.

단순 이름(§12.8.4) K가 0이고 simple_name블록 내에 나타나며 블록(또는 바깥쪽 블록)의 지역 변수 선언 공간(선언 - §7.3)에 이름이 I인 지역 변수, 매개변수(무시 매개변수 제외) 또는 상수가 포함된 경우, simple_name은 해당 지역 변수, 매개변수 또는 상수를 참조하며 변수 또는 값으로 분류됩니다.

범위 - 무시 매개 변수를 제외하고 §7.7 lambda_expression 선언된 매개 변수의 범위(§12.19)는 해당 lambda_expression anonymous_function_body 무시 매개 변수를 제외하고 anonymous_method_expression 선언된 매개 변수의 범위(§12.19)는 해당 anonymous_method_expression 블록입니다.