【发布时间】:2016-12-07 16:27:51
【问题描述】:
我有一段使用 Renci.SshNet 包的 C# 代码。我正在上传一个文件,相关函数的签名如下:
public void UploadFile(Stream input, string path, Action<ulong> uploadCallback = null);
我这样称呼它(没关系):
Client.UploadFile(UploadStream, RemoteFile,
uploadcallback =>
{
Logger.Info("Uploaded {0}", CurrentFile);
ArchiveList.Add(CurrentFile);
});
我不清楚的是为什么uploadCallback 参数是Action<ulong>。如果您在调用时放入 lambda 表达式,这正是您所需要的吗?
【问题讨论】:
-
您没有调用此处显示的重载。
-
在您的情况下,Client.UploadFile 是一个静态方法,并且 bool canOverride 字段似乎不在图片中,除非签名具有默认值
-
uploadcallback是您传递给UploadFile的Action<ulong>的参数,因此类型为ulong,而不是Action<ulong>。您也没有在示例中传递canOverride参数。 -
@Zinov 它是 Renci.SshNet.SftpClient 的一个实例。
-
抱歉,我的方法签名有误,已修复。
标签: c# function lambda functional-programming