형식 유추에 대해 조금은 검색했지만 특정 문제에 대한 솔루션을 적용 할 수 없습니다.중첩 된 일반 함수에 대한 유형 유추
저는 건물을 짓고 기능을 전달하는 일을 많이하고 있습니다. 이것은 int 형을 추측 할 수 있어야하는 것처럼 보입니다. 내가 생각할 수있는 유일한 것은 람다 리턴 타입이 타입 추론 알고리즘에 의해 체크되지 않는다는 것입니다. 문제를보다 분명하게 보여주기 위해 불필요한 논리를 제거했습니다.
Func<T> Test<T>(Func<Func<T>> func)
{
return func();
}
이 컴파일 :
Func<int> x = Test<int>(() =>
{
int i = 0;
return() => i;
});
을하지만,이 오류를 준다 "메서드의 형식 인수는 사용에서 유추 할 수 없습니다 명시 적 형식 인수를 지정하십시오."
Func<int> x = Test(() =>
{
int i = 0;
return() => i;
});
나는 그것이 왜 이런 식으로 작동하는지 그리고 모든 해결 방법을 알고 싶다.
매우 비슷한 질문이지만 완전히 동일하지는 않습니다. http://stackoverflow.com/questions/6090159/inferring-generic-types-with-functional-composition –