回调函数作为库API中的参数

时间:2013-10-25 10:49:27

标签: c#

我正在编写一个FTP客户端库。我的get函数应该采用以下参数:(Server IP, remotefilename, clientfilename, Applications_callback_function)

我编写了库来执行get函数而没有Applications_callback_function参数。

期望是使用Applications_callback_function参数编写get API,并在文件传输完成后调用带有结果的回调函数,并将结果放入EventArgs

我怎样才能在C#中做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以将委托传递给get方法。试试这个:

function Get(string ServerIP, string, remotefilename, string clientfilename, Action<YourResponseType> Applications_callback_function)
{
    // your logic...
    Applications_callback_function(data_from_request);
}

或者如果响应不是单一类型:

function Get<T>(string ServerIP, string remotefilename, string clientfilename, Action<T> Applications_callback_function)
{
    // your logic...
    Applications_callback_function(data_from_request);
}

// caller...
Get<ResponseType>("127.0.0.1", "foo.txt", "bar.txt", myHandler);

function myHandler(ResponseType data) 
{
   // handle response...
}