爲什麼推薦用Lamda表達式

 委託的概念,匿名委託(方法),委託是一種安全的類型。
public int CompareTwoValue(int a, int b) 

 int c=a-b;
 return c; 
}
1. 接着聲明一個委託

public delegate int deleMethod(int a,int b);


 然後,我們可以通過這個委託調用這個上面的成員方法,

 public int Show()  {      

deleMethod d1 = new deleMethod(CompareTwoValue);     

 return d1(5,10);  

 }

2.匿名委託,其實也稱作匿名方法,其實,這只是一種語法形式上的變化,因爲編譯的時候,還是要進行類型匹配的,那麼對於上面的Show方法,我可以使用匿名委託的方式來表達

public int Show1()
{
   deleMethod d2
= delegate(int a, int b)
  {
    int c=a-b;
    return c;
  };
   return d2(5,10);
}

可以看出,語法形式上簡便了,所以我個人覺得匿名委託在C#2.0中並沒有實質性的用處,因爲到3.0時,涉及到Lamda表達式時,才真正的有用處,那麼上面的方法,如果用Lamda表達式表述如下:

public int Show2() { Func<int, int, int> f = ( a,b) => { return a - b; }; return f(5,10); }

初次接觸Lamda表達式時感覺很難懂,但是一旦理解了之後,我就很喜歡這種表達方式,其實,Lamda表達式只是匿名委託的一種表現形式,從上面的結果可以很直觀的看出,三種方式中,Lamda表達式編寫的代碼量最少,最後看一下執行的結果

TestExample test = new TestExample(); Console.WriteLine(test.Show()); Console.WriteLine(test.Show1()); Console.WriteLine(test.Show2());

結果是一致的,其實三者的功能是一致的,只是表現形式不一樣,而三種方法中,Lamda表達式編寫的代碼量最少。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章