我有以下代码。我没有任何线索为什么我收到这个错误 - 委托函数不带1个参数。
我正在实现一个全局响应处理程序,它将被多个请求调用。
这是HandleResponse函数:
Response<T> HandleResponse<T>(Func<Response<T>> func)
{
try
{
Response <T> response = func();
if(response != null)
{
return response;
}
else
{
//display response.message
return default(Response<T>);
}
}
catch(ConnectionException e)
{
// func = e.Message.ToString();
Console.WriteLine(e.Message);
return default(Response<T>);
}
}
这是我的通话功能:
Request.MyRequest request = new
Request.MyRequest()
{
param1= comment, param2 = users
};
SomeResponse response = HandleResponse<SomeResponse>(x => client.DoRequest(request, revision.Name, revision.RevisionNumber));
我是C ++开发人员,也是C#的新手。我不知道为什么我会收到这个错误。请有人解释一下。
提前致谢。
答案 0 :(得分:2)
使用x => client.DoRequest()
您正在使用1个参数(x
之前的=>
)调用该委托。
但你的代表没有参数,所以你必须像这样调用它
() => client.DoRequest()