问:为什么不推断推断的通用参数?
当查看下面的示例时,类型T
可以推断为Instance
,我们可以看到我们需要没有参数的方法,这也是提供的。该方法返回一个TOut
,它必须是int
,因为我们不能在返回类型上有重载。
public class Instance
{
public int Convert()
{
return 42;
}
}
public static class Example
{
public static void Inferred<T, TOut>(T source, Expression<Func<T, Func<TOut>>> expression)
{
}
public static void Usage()
{
var instance = new Instance();
Inferred(instance, x => x.Convert);
}
}