C#方法组类型推断

Asi*_*sik 14 c# generics type-inference

我正在尝试编写一个提供参数并调用函数的泛型方法,如下所示:

class MyClass {
    public int Method(float arg) => 0;
}

TResult Call<T1, TResult>(Func<T1, TResult> func) =>
    func(default(T1));

void Main()
{
    var m = new MyClass();
    var r1 = Call<float, int>(m.Method);
    var r2 = Call(m.Method); // CS0411
}
Run Code Online (Sandbox Code Playgroud)

最后一行无法使用CS0411进行编译.是否有任何解决方法可以在这里使用类型推断?

使用案例:使用AutoFixture生成函数调用参数.

Bli*_*ndy 6

不幸的是,这是C#中类型推断的限制.它对返回类型并没有太大作用,在你的情况下需要完全推断泛型参数Call<>.