我正在尝试编写一个通用的方法,该方法提供参数并调用函数,就像这样:
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
}
最后一行代码无法编译,会出现CS0411错误。这里是否有任何解决方法可以使类型推断正常工作?
用例:使用AutoFixture生成函数调用参数。