我已經搜索了一些關於類型推斷的內容,但似乎無法將任何解決方案應用於我的特定問題。嵌套泛型函數的類型推斷
我正在做大量的構建和傳遞函數的工作。在我看來,它應該能夠推斷int類型。我能想到的唯一的事情是,類型推斷算法不檢查lambda返回類型。我已經剝奪了不必要的邏輯來更清楚地表明問題。
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 –