C#에서 익명 메서드는 인라인 함수를 정의하는 편리한 방법을 제공합니다. 이러한 메서드는 대리자 유형에 쉽게 할당할 수 있지만 암시적으로 유형이 지정된 변수(var 사용)에 할당하려고 하면 컴파일러 오류가 발생하는 경우가 많습니다.
다음 코드 샘플을 고려하세요.
Func<string, bool> comparer = delegate(string value) { return value != "0"; };
익명 메소드가 Func
var comparer = delegate(string value) { return value != "0"; };
오류:
암시적으로 유형이 지정된 지역 변수에 익명 메서드를 할당할 수 없습니다.
이 오류는 컴파일러는 무명 메서드의 유형을 추론할 수 없습니다. Func, Predicate, Action 등 셀 수 없이 많은 대리자 유형을 나타낼 수 있습니다.
게다가 컴파일러가 Func
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; };
그러나 이는 Func
이 문제를 해결하고 무명 메서드가 올바른 대리자 유형으로 컴파일되도록 하려면 할당 문에서 대리자 유형을 명시적으로 지정해야 합니다. 첫 번째 코드 샘플에서 볼 수 있듯이
위 내용은 C#에서 `var`에 익명 메서드를 할당할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!