我有一个定义为接收两个参数的方法。一个是泛型类型,另一个是具有泛型返回类型的函数:
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.
..否则,该类中的
TResponse
是TRequest
。关于c# - 为什么我的方法期望错误的返回类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14227917/