我有一个定义为接收两个参数的方法。一个是泛型​​类型,另一个是具有泛型返回类型的函数:

public class MyHelperClass<TRequest, TResponse>
{
   public TResponse Execute(TRequest request, Func<IDataRecord, TResponse> builder){ ... }
}


然后我有一个对象,该对象具有要作为委托传递的方法

public class MyObject
{
   public TResponse BuildMe(IDataRecord rdr){ ... }
}

//call like this
MyHelperClass.Execute(input, myObjectInstance.BuildMe);


但我得到一个错误说明:

“使用“ TRequest BuildResponse(IDataRecord)”预期了一种方法

为什么期望TRequest作为返回而不是TResponse?

最佳答案

因为这:

private GetSamyungDataSourceV1<TRequest, TRequest> _getSamyungDataSourceV1;


.. 应该:

private GetSamyungDataSourceV1<TRequest, TResponse> _getSamyungDataSourceV1;
                                          // ^^^ this.


..否则,该类中的TResponseTRequest

关于c# - 为什么我的方法期望错误的返回类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14227917/

10-11 16:49