2013-07-17 2 views
1

Пробовал преобразовать этот код в VB.NET с использованием различных онлайн-конвертеров, но ни один из них не работал (получена ошибка в объявлении обработчика события). Я использую VS 2012 и .Net 4.5. Есть идеи?Преобразование делегата события из C# в VB.NET

readonly Action<IDialogManager, Action<bool>> closeCheck; 

public void Execute(ActionExecutionContext context) { 
     closeCheck(Shell.Dialogs, result => Completed(this, new ResultCompletionEventArgs { WasCancelled = !result })); 
    } 

public event EventHandler<ResultCompletionEventArgs> Completed = delegate { }; 

ответ

0

Я создал фиктивные типы в LINQPad и получил это:

ReadOnly closeCheck As Action(Of IDialogManager, Action(Of Boolean)) 

Public Sub Execute(ByVal Context As ActionExecutionContext) 
    closeCheck(Shell.Dialogs, Sub(Result) RaiseEvent Completed(Me, New ResultCompletionEventArgs With { .WasCancelled = Not Result })) 
End Sub 

Public Event Completed As EventHandler(Of ResultCompletionEventArgs) 
Смежные вопросы