如何解决C#-尝试从函数构造类,获取无法转换方法组错误
我试图将一个函数封装在一个类中,但是它不起作用。我在这里想念什么?
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
}
}
它应该能够将函数转换为相同类型的委托。我也具有带有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 var01)
那么您可能想要更多类似的东西
abc.MyGenericFunction<float>(new MyClass<float,float>(Test),x);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。