Lambda表達式基礎

1.委託的典型用法編程

  1.1定義一個委託:spa

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

  1.2 定義一個MyClass類,放置一個知足 AddDelegate委託要求的方法code

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方法引用傳給委託變量delblog

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

 1.5經過委託變量調用MyClass對象的 Add()方法it

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

總結:定義委託,定義委託所須要的方法,調用class

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表達式在功能上等價於匿名方法,能夠當作是匿名方法的進一步簡化

相關文章
相關標籤/搜索