我正在尝试编写一个提供参数并调用函数的通用方法,如下所示:
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 https://msdn.microsoft.com/en-us/library/hxfhx4sy(v=vs.140).aspx。有什么解决方法可以让类型推断在这里起作用吗?
用例:使用 AutoFixture 生成函数调用参数。
不幸的是,不是,这是 C# 中类型推断的限制。它实际上对返回类型没有多大作用,这是您的情况下需要完全推断通用参数的Call<>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)