다음 코드가 있습니다.
Func<string, bool> comparer = delegate(string value) {
return value != "0";
};
그러나 다음은 컴파일되지 않습니다.
var comparer = delegate(string value) {
return value != "0";
};
컴파일러가 왜 그것을 알 수 Func<string, bool>
없습니까? 하나의 문자열 매개 변수를 사용하고 부울을 반환합니다. 대신 오류가 발생합니다.
암시 적으로 형식화 된 로컬 변수에 익명 메서드를 할당 할 수 없습니다.
나는 하나의 추측을 가지고 있으며 var 버전이 컴파일 된 경우 다음과 같은 경우 일관성이 부족합니다.
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) {
return false;
};
Func <>은 최대 4 개의 인수 (.NET 3.5에서는 사용중인 것) 만 허용하므로 위의 내용은 의미가 없습니다. 아마도 누군가가 문제를 분명히 할 수있을 것입니다. 감사.
Func<string, bool>
할까요? 그것은 Converter<string, bool>
나에게 보인다 !
Dim comparer = Function(value$) value <> "0"
Func<>
최대 16 개의 인수를 허용합니다.