【发布时间】:2012-11-08 15:54:59
【问题描述】:
我正在尝试将一些 C# 代码转换为 VB .Net,但遇到了一些 delgate 转换的问题。
BackupLibraries.cs
Public Class Backup
{
public event EventHandler<BackupPEventArgs> Backup;
...
if (BackupProgress != null) BackupProgress(this, new BackupProgressEventArgs(percent_complete))
...
}
public class BackupEventArgs : EventArgs
{
private float percentage;
public BackupProgressEventArgs(float percentage)
{
this.percentage = percentage;
}
public float Percentage
{
get { return percentage; }
}
}
UnitTest.cs
public void BackupTest()
{
Backup bu = new Backup()
bu.BackupProgress += delegate(object sender, Backup.BackupEventArgs e)
{
Debug.WriteLine("Percentage: " + e.Percentage.ToString());
};
}
它正在转换 sb.Backup += delegate(object sender, SQLBackup.BackupProgressEventArgs e) 并将其连接到我遇到问题的其他课程中的事件。
在 VB 中:
Backuplibraries.vb
Public Class Backup
Public Event Backup As EventHandler(Of BackupEventArgs)
...
RaiseEvent Backup(Me, New BackupEventArgs(percent_complete))
...
End Class
Public Class BackupEventArgs
Inherits EventArgs
UnitTest.vb
Public Class BackupTest
Dim bu As New Backup()
bu.BackupProgress = Sub(sender As Object, e As BackupEventArgs)
Debug.WriteLine(e.Percentage.ToString())
End Sub
End Class
当然
bu.BackupProgress = Sub(sender As Object, e As BackupEventArgs)
Debug.WriteLine(e.Percentage.ToString())
End Sub
是我从 C# 转换为 .Net 时遇到的问题。
【问题讨论】:
-
+1 一些相关的问题 (
+=->AddHandler) 但由于此问题中的匿名代表不完全重复。它们可能是彼此的重复。 stackoverflow.com/questions/7636382/…stackoverflow.com/questions/9728926/…stackoverflow.com/questions/3492674/can-you-convert-this-to-vbstackoverflow.com/questions/4448323/…