这是界面
Public Interface ILoginConductor
Inherits IHandle(Of LoginEvent)
Inherits IHandle(Of LogoutEvent)
Inherits IHandle(Of ExitEvent)
End Interface
在C#中,这是使用接口
的方法public void Handle(LoginEvent message)
{
LoginWindow loginWindow = new LoginWindow();
loginWindow.Login += new EventHandler<LoginEventArgs>(this.LoginWindow_Login);
loginWindow.Cancel += new EventHandler(LoginWindow_Cancel);
loginWindow.ShowDialog();
}
它在VB.Net中转换为此
Public Sub Handle(message As LoginEvent) Implements ILoginConductor.Handle
Dim loginWindow As New LoginWindow()
loginWindow.Login += New EventHandler(Of LoginEventArgs)(AddressOf Me.LoginWindow_Login)
loginWindow.Cancel += New EventHandler(AddressOf LoginWindow_Cancel)
loginWindow.ShowDialog()
End Sub
但是编译器抛出一个错误,说我必须使用RaiseEvent
。有人可以帮我告诉我如何修复我的代码。
答案 0 :(得分:0)
编译器可能会告诉您VB代码中的事件必须以与C#不同的方式触发。你需要将&#34; raiseevent&#34;事件方法调用之前的关键字(例如raiseevent Login_WindowCancel())。看看https://msdn.microsoft.com/en-us/library/fwd3bwed.aspx