2011-01-02 4 views
0

당신이 할 수있는 VB.NET변환 C#을 람다

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); 
         } 
        } 
       } 
      ); 
    } 
+0

주, VB 9 – Jeff

+0

에 대한 멀티 라인 익명의 위임 (람다) 지원 내가 환각없는 건가요가? 나는 종종이 일을한다. 나는 그것을 찾아 보자. –

답변

1

를이 변환에 도움이 필요 VB.NET하는 인라인 (in-line)과 같은 구문으로 익명 함수/서브 우퍼 : 때때로

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

것을 얻을 이 잘 BECA 작동

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

: 인라인을 사용하므로 그렇게되면 내가 로컬 서브에게/기능의 이름을 줄 때 정말 flakey 당신은 어휘 환경을 여전히 닫을 수 있습니다.

이것은 모두 메모리에 있습니다. 저는 집에 VS가 없으므로 (직장에서 그렇게 트롤하지 마세요). 특히, 나는 올바른 장소에 내 닫는 빤이 있는지 잘 모르겠다.

MSDN Reference

+0

응답 해 주셔서 감사합니다. 하지만 과부하 해결 오류가 발생했습니다. – Joven

+0

@Joven : 오류 코드와 함께 코드를 게시하십시오. –

+0

마지막으로 오버로드 된 메서드에서 오류를 발견했습니다. 도움을 주셔서 감사합니다 – Joven