我已经搜索了一些关于类型推断的内容,但似乎无法将任何解决方案应用于我的特定问题。嵌套泛型函数的类型推断
我正在做大量的构建和传递函数的工作。在我看来,它应该能够推断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 –