왜?
언어 디자인 팀에서는 기능을 사용하지 않는 것에 대한 정당성을 제시 할 필요가 없습니다. 오히려 기능을 원하는 사람들은이를 정당화해야합니다.
막연한 질문 대신 "왜?"라고 묻는다면?
이 기능을 C# 디자인 팀에 적용하려면 어떤 문제가 있다고 생각합니까?
C# 언어에는 람다가 클래스의 메서드로 구현되어야한다는 요구 사항이 없습니다.
우선, 표현 트리가 될 수 있습니다.이 경우 특성이있는 것은 어떤 의미입니까? 둘째, 컴파일러가 생성 한 클로저 클래스의 메서드로 람다를 구현한다는 의미 인 요구 사항이 없습니다. 즉, 매개 변수 목록을 메타 데이터를 확실하게 배치 할 수있는 요소 일 필요는 없습니다. 속성은 프로그램 메타 데이터의 일부이며 일반적으로 컴파일러에서 생성 된 유형을 탐색하여 메타 데이터를 소비하는 것이 합리적인 것으로 간주하지 않습니다.
예를 들어 표현 람다를 이상하고 완벽하게 실행할 수있는 구현은 항상 표현식 트리를 생성 한 다음 표현식 트리 람다가 아닌 것으로 밝혀지면 다른 끝에 Compile
에 대한 호출을 생성합니다. 메타 데이터가 없으므로 속성을 넣을 곳이 없습니다.
이상하게 들릴지 모르지만 C# 언어는 람다와 같은 특정 기능이 컴파일러 작성자를 특정 구현으로 제한하지 않도록 신중하게 설계되었습니다.
시간 대 보수/회수 기간 중 다른 하나입니까?
예.
누구나 생각하고 말하지, naah!
알아보기.
자주 언급했듯이 기능 구현을 위해서는 의 생각이이어야합니다. 필자가 아는 한, 람다 매개 변수에 대한 속성이 좋은 아이디어라고 생각하는 사람입니다.생각하지 않은 아이디어는 설계, 구현, 테스트, 문서화 또는 배송되지 않습니다.
이것은 평범하지 않은가요?
나는 그렇게 생각한다.
호기심에서 벗어난 이유는 무엇입니까? 익명 메소드에서 매개 변수의 속성을 지정해야하는 이유는 무엇입니까? – Dan
유형이 지정되지 않은 관리되지 않는 메모리 블록이지만 실제로 float [], float2 [], float4 [] 등의 매개 변수 중 하나에 주석을 달거나 입력해야합니다. 내 코드의 다른 곳에서이 형식 주석을 사용합니다. 단위 테스트 및 데이터 덤핑 (사람이 읽을 수있는 형식). – Ani
아마도 익명의 방법이 아닌 구체적인 방법을 만드는 것이 나을 것입니다. – Dan