委派功能错误

时间:2018-04-09 09:09:54

标签: c#

我有以下代码。我没有任何线索为什么我收到这个错误 - 委托函数不带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#的新手。我不知道为什么我会收到这个错误。请有人解释一下。

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用x => client.DoRequest()您正在使用1个参数(x之前的=>)调用该委托。

但你的代表没有参数,所以你必须像这样调用它 () => client.DoRequest()