2012-04-02 20 views
1

私はこのコードを持っており、ラムダ式でどのように簡略化できるのか分かりませんか?ラムダ式とInvokeOperation

public void LoadEntities(QueryBuilder<Device> query, Action<ServiceLoadResult<Device>> callback, object state) 
{ 
    InvokeOperation<List<DivisionHierarchy>> obj = this.Context.GetAllDivisions(); 

    obj.Completed += new EventHandler(obj_Completed); 
} 

void obj_Completed(object sender, EventArgs e) 
{ 
    try 
    { 
     if (sender is InvokeOperation<List<DivisionHierarchy>>) 
     { 
      ObservableCollection<DivisionHierarchy> divisions = 
       new ObservableCollection<DivisionHierarchy>((sender as InvokeOperation<List<DivisionHierarchy>>).Value); 
     } 
    } 
    catch 
    {     
    } 
} 
+0

のですか? –

+0

@MaratKhasanovすべてのコードpls –

答えて

6

あなたの質問は多すぎますので、私はここで推測していますが、ここでラムダ式の唯一の場所は、イベントにフックするときです。代わりに、別々のobj_Completedメソッドを持つのだから、あなたはこれを行うことができます。

public void LoadEntities(QueryBuilder<Device> query, Action<ServiceLoadResult<Device>> callback, object state) 
    { 
     InvokeOperation<List<DivisionHierarchy>> obj = this.Context.GetAllDivisions(); 

     obj.Completed += (sender, e) => 
     { 
      try 
      { 
       if (sender is InvokeOperation<List<DivisionHierarchy>>) 
       { 
        ObservableCollection<DivisionHierarchy> divisions = 
         new ObservableCollection<DivisionHierarchy>((sender as InvokeOperation<List<DivisionHierarchy>>).Value); 

       } 
      } 
      catch 
      {     
      } 
     } 
    } 
+0

@Peretz:正しい答えを受け入れてください。それを質問にコピー&ペーストしないでください。 – abatishchev

0

だから、最終的なソリューションは、ここではあなたが単純化したいんコードでどのような場所

public void LoadEntities(QueryBuilder<Device> query, Action<ServiceLoadResult<Device>> callback, object state) 
    { 

    ((InvokeOperation<List<DivisionHierarchy>>)this.Context.GetAllDivisions()).Completed += (sender, e) => 
     { 
      try 
      { 
       if (sender is InvokeOperation<List<DivisionHierarchy>>) 
       { 
        ObservableCollection<DivisionHierarchy> divisions = 
         new ObservableCollection<DivisionHierarchy>((sender as InvokeOperation<List<DivisionHierarchy>>).Value); 
        } 
       } 
       catch 
       { 
       } 
     };   
}