![](/img/trans.png)
[英]Trying to generalize c# function but getting "Cannot convert 'int' to 'T'"
[英]C# - Trying construct a class from a function, getting Cannot convert method group error
我正在尝试将 function 封装在 class 中,但它不起作用。 我在这里想念什么?
public class MyClass<Return, T>
{
public delegate void D01(T val);
public D01 d01;
public delegate void D02(T val, T val2);
public D02 d02;
public MyClass(D01 func)
{
d01= func;
}
public MyClass(D02 func)
{
d02= func;
}
}
public class ABC
{
public void MyGenericFunction<T>(MyClass<T, T> function, T var01)
{
...
}
}
class OtherClass
{
private ABC abc = new ABC();
private void Test(float x) {...}
private void OtherFunc()
{
float x = 1.0f;
abc.MyGenericFunction<float>(Test, x);
//Gives Cannot convert method group to MyClass<float,float> error
}
}
它应该能够将 function 转换为相同类型的委托。 我也有带有 Func 和 Action 参数的相同构造函数,但也无法让它们工作。
哇,这里发生了很多事情......我猜你实际上希望Func
与MyClass<T, T> function
public void MyGenericFunction<T>(Func<T, T> function, T var01)
{
...
}
...
private float Test(float x)
{
...
}
private void OtherFunc()
{
float x = 1.0f;
abc.MyGenericFunction<float>(Test, x);
}
在你真正想要的机会上
public void MyGenericFunction<T>(MyClass<T, T> function, T var01)
然后你可能想要更像这样的东西
abc.MyGenericFunction<float>(new MyClass<float, float>(Test), x);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.