Вот интерфейсобработчика событий в C# не преобразует правильно VB.net
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
. Может кто-то, пожалуйста, помогите мне показать мне, как исправить мой код.
Что значит «конвертирует в»? Вы используете инструмент преобразования? Если да, то какой? Проблема в том, что у VB нет оператора + =. Вместо этого вам нужно использовать оператор [RaiseEvent] (https://msdn.microsoft.com/en-us/library/fwd3bwed.aspx). – Clint
@Clint: эквивалент V + .NET '+ =' вводит [** оператор AddHandler **] (https://msdn.microsoft.com/en-us/library/7taxzxka.aspx), а не RaiseEvent. –
@VisualVincent это! Глупый промах с моей стороны. – Clint