암시적 유형 'Var'로 유추된 변수에 익명 메서드를 할당할 수 없는 이유는 무엇입니까?
다음 코드를 고려하세요.
Func<string, bool> comparer = delegate(string value) { return value != "0"; };
이 코드는 추론된 유형이 람다 식은 Func 대리자입니다. 그러나 다음 코드는 컴파일되지 않습니다.
var comparer = delegate(string value) { return value != "0"; };
이 경우 컴파일러는 람다 식에 대한 대리자 유형을 유추할 수 없습니다. 이는 추론할 수 있는 대리자 유형이 무한히 많고 컴파일러에 어떤 유형이 의도되었는지 판단할 만큼 충분한 컨텍스트가 없기 때문입니다.
예를 들어 람다 식은 Func
이 문제를 해결하려면 해당 대리자 유형을 명시적으로 지정하세요. 람다 식:
var comparer = (Func<string, bool>)delegate(string value) { return value != "0"; };
이렇게 변경하면 코드가 성공적으로 컴파일되고 유추된 유형이 람다 표현식은 Func
위 내용은 명시적 유형 선언 없이 암시적으로 유형이 지정된 변수('var')가 익명 메서드를 보유할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!