加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在VB.NET中添加事件处理程序的语法

发布时间:2020-12-17 00:02:17 所属栏目:大数据 来源:网络整理
导读:我有以下代码我需要转换为VB.NET.问题是我找到的每个翻译工具都是错误地转换添加处理程序部分.我自己似乎无法做到这一点. FtpClient ftpClient = new FtpClient();ftpClient.UploadProgressChanged += new EventHandlerUploadProgressChangedLibArgs(ftpClie
我有以下代码我需要转换为VB.NET.问题是我找到的每个翻译工具都是错误地转换添加处理程序部分.我自己似乎无法做到这一点.
FtpClient ftpClient = new FtpClient();
ftpClient.UploadProgressChanged += new EventHandler<UploadProgressChangedLibArgs>(ftpClient_UploadProgressChanged);
ftpClient.UploadFileCompleted += new EventHandler<UploadFileCompletedEventLibArgs>(ftpClient_UploadFileCompleted);
将事件处理程序方法与VB.NET中的事件关联有两种不同的方法.

第一个涉及使用Handles关键字,您将其附加到事件处理程序方法的定义的末尾.例如:

Sub ftpClient_UploadProgressChanged(sender As Object,e As UploadProgressChangedLibArgs) Handles ftpClient.UploadProgressChanged
    ' ...
End Sub

Sub ftpClient_UploadFileCompleted(sender As Object,e As UploadFileCompletedEventLibArgs) Handles ftpClient.UploadFileCompleted
    ' ...
End Sub

如果你已经有了单独定义的事件处理程序方法(即,如果你没有使用lambda语法),第一种方法就会简单得多.我会尽可能地推荐它.

第二个涉及显式使用AddHandler语句,就像在C#中的=.如果要动态关联事件处理程序,则需要使用此选项,例如:如果你需要在运行时更改它们.所以你的代码,字面转换,看起来像这样:

Dim ftpClient As New FtpClient()
AddHandler ftpClient.UploadProgressChanged,AddressOf ftpClient_UploadProgressChanged
AddHandler ftpClient.UploadFileCompleted,AddressOf ftpClient_UploadFileCompleted

就像你说的那样,我尝试通过Developer Fusion’s converter运行你的代码,并惊讶地看到他们返回无效的VB.NET代码:

' WRONG CODE!
Dim ftpClient As New FtpClient()
ftpClient.UploadProgressChanged += New EventHandler(Of UploadProgressChangedLibArgs)(ftpClient_UploadProgressChanged)
ftpClient.UploadFileCompleted += New EventHandler(Of UploadFileCompletedEventLibArgs)(ftpClient_UploadFileCompleted)

事实证明,这可能是值得投票的a known bug!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读