1

我在c#中有这段代码

void Backup()
{
    string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
    string file = "C:\\MyDumpFile.sql";
    MySqlBackup mb = new MySqlBackup(constr);
    mb.ExportInfo.FileName = file;
    mb.ExportProgressChanged += new MySqlBackup.exportProgressChange(mb_ExportProgressChanged);
    mb.ExportCompleted += new MySqlBackup.exportComplete(mb_ExportCompleted);
    timerRead.Start();
    mb.Export();
}

当转换为VBNet

Private Sub Backup()
    Dim constr As String = "server=localhost;user=root;pwd=qwerty;database=test;"
    Dim file As String = "C:\MyDumpFile.sql"
    Dim mb As New MySqlBackup(constr)
    mb.ExportInfo.FileName = file
    mb.ExportProgressChanged = mb.ExportProgressChanged + New MySqlBackup.exportProgressChange(mb_ExportProgressChanged)
    mb.ExportCompleted = mb.ExportCompleted + New MySqlBackup.exportComplete(mb_ExportCompleted)
    timerRead.Start()
    mb.Export()
End Sub

我总是收到这个错误

“exportProgressChange”是“MySql.Data.MySqlClient.MySqlBackup”中的一种类型,不能用作表达式。

我在这里想念什么?

4

1 回答 1

2
Private Sub Backup()
Dim constr As String = "server=localhost;user=root;pwd=qwerty;database=test;"
Dim file As String = "C:\MyDumpFile.sql"
Dim mb As New MySqlBackup(constr)
mb.ExportInfo.FileName = file
AddHandler mb.ExportProgressChanged, New MySqlBackup.exportProgressChange(AddressOf mb_ExportProgressChanged)
AddHandler mb.ExportCompleted, New MySqlBackup.exportComplete(AddressOf mb_ExportCompleted)
timerRead.Start()
mb.Export()
End Sub

应该可以工作,因为在 VB .net 中你不能使用 += 订阅事件,你必须使用AddHandlerand RemoveHandler

编辑:试过了,所以编译得很好。

于 2012-11-02T11:26:15.493 回答