Конвертировать C # Lambda в vb.net - PullRequest
0 голосов
/ 02 января 2011

Нужна помощь в преобразовании этого в VB.NET

   public void GetCustomers(Action<IEnumerable<Customer>> onSuccess, Action<Exception> onFail)
    {
        Manager.Customers.ExecuteAsync(op =>
              {
                  if (op.CompletedSuccessfully)
                  {
                      if (onSuccess != null) 
                          onSuccess(op.Results);
                  }
                  else
                  {
                      if (onFail != null)
                      {
                          op.MarkErrorAsHandled();
                          onFail(op.Error);
                      }
                  }
              }
           );
    }

1 Ответ

1 голос
/ 02 января 2011

Вы можете выполнять встроенные анонимные функции / подпрограммы с синтаксисом, например:

Manager.Customers.ExecuteAsync( Sub (op)
                                  If op.CompletedSuccessfully Then
                                    ...
                                  Else
                                    ...
                                  EndIf
                                End Sub )

Иногда, когда вы используете его в строке, все становится действительно неестественно, поэтому, когда это происходит, я даю имя локальной функции / функции:

Dim SomeFun as Action(Of OpType) = Sub (op)
                                     ...
                                   End Sub

Это хорошо работает, потому что вы все еще можете закрыть свою лексическую среду.

Это все из памяти - у меня дома нет VS (и я стараюсь не троллить ТАК на работе). В частности, я не уверен, что у меня есть закрывающая пара в нужном месте.

MSDN Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...