1. 程式人生 > >Lambda表達式基礎

Lambda表達式基礎

lam 引用 等價 spa 實例 編程 clas 匿名方法 賦值

1.委托的典型用法

  1.1定義一個委托:

public delegate int AddDelegate(int i, int j);

  1.2 定義一個MyClass類,放置一個滿足 AddDelegate委托要求的方法

1 class MyClass
2 {
3     public int Add(int i , int j)
4     {
5         return i + j;
6     }
7 }

1.3定義一個委托變量

AddDelegate del = null;

 1.4實例化一個MyClass對象,並將其 Add方法引用傳給委托變量del

MyClass obj = new
MyClass(); del = obj.Add ;

 1.5通過委托變量調用MyClass對象的 Add()方法

int result = del(100, 200);
Console.WriteLine(result);//300

總結:定義委托,定義委托所需要的方法,調用

2.為了簡化委托編程,C#首先引入了一種語法特性—— 匿名方法,之後,再自然地演化為了Lambda表達式。

  匿名方法的示例(AnonymousMethodToLambda )

    2.1定義委托

      

public delegate int AddDelegate(int i,int j );

    2.2使用匿名方法定義委托變量//匿名方法“沒有名字”, 可以直接賦值給委托類 型的變量。

AddDelegate del = delegate(int i, int j)
{
    return i + j;
};

    2.3通過委托變量“間接”地調用方法

    

Console.WriteLine(del(100,200)); //300

總結:匿名方法其實是將方法定義與委托變量賦值兩個步驟 合而為一,從而省去了專門定義符合委托要求的方法 這個步驟。(1.2和1.4)

3.更進一步,將匿名方法轉換為Lambda表達式……

  3.1

AddDelegate del = (i, j) => i + j;

總結:Lambda表達式在功能上等價於匿名方法,可以看成是匿名方法的進一步簡化

Lambda表達式基礎