Lambda表示式詳解

2022-07-01 10:57:11 字數 2487 閱讀 1464

前言1、天真熱,程式設計師活著不易,星期天,也要頂著火辣辣的太陽,總結這些東西。

2、夸夸lambda吧:簡化了匿名委託的使用,讓你讓**更加簡潔,優雅。據說它是微軟自c#1.0後新增的最重要的功能之一。

lambda運算子:所有的lambda表示式都是用新的lambda運算子 " => ",可以叫他,「轉到」或者 「成為」。運算子將表示式分為兩部分,左邊指定輸入引數,右邊是lambda的主體。

lambda表示式:

1.乙個引數:param=>expr

2.多個引數:(param-list)=>expr

上面這些東西,記著,下面我們開始應用並闡述lambda,讓你樂在其中。

闡述這技術,我先上乙個例子,然後再慢慢深入分析。例子如下:

namespace

lambda

public

int age }

class

program ; persons.add(p); }

return

persons; }

static

void main(string

args) } }

看啦上面的例子,相信你能看出它確實是個甜棗,呵呵,下面我們來看下(p=>p.age>6)這樣的表示式,到底是怎麼回事。。

首先我們看下委託  

//

委託 逛超市

delegate

int guangchaoshi(int

a);

static

void main(string

args)

//結賬

public

static

int jiezhang(int

a)

再看表示式

//

委託 逛超市

delegate

int guangchaoshi(int

a);

static

void main(string

args)

委託跟表示式的兩段**,我們可以看出一些東東吧:其實表示式(

p => p + 10;)中的 p 就代表委託方法中的引數,而表示式符號右邊的 p+10,就是委託方法中的返回結果。 大俠繞道,小蝦理解下。

下面再上兩個稍微複雜點的理解理解。

1.多引數的

//

委託 逛超市

delegate

int guangchaoshi(int a,int

b);

static

void main(string

args)

2. lambda主體運算複雜  

///

///委託 逛超市

/// ///

花費 ///

付錢 ///

找零 delegate

int guangchaoshi(int a,int

b);

static

void main(string

args)

else

}; console.writeline(gwl(

10,100) + ""); //

列印80,z對應引數b,p對應引數a

console.readkey(); }

上面這些例子,好好理解下,下面我要介紹乙個系統指定的 fun委託。

t 是引數型別,這是乙個泛型型別的委託,用起來很方便的。

先上例子

static

void main(string

args)

說明:我們可以看到,這裡的p為int 型別引數, 然而lambda主體返回的是string型別的。

再上乙個例子

static

void main(string

args)

return

false

; }; console.writeline(gwl(

5,5) + ""); //

列印『true』,z對應引數b,p對應引數a

console.readkey(); }

說明:從這個例子,我們能看到,p為int型別,j為int型別,返回值為bool型別。

看完上面兩個例子,相信大家應該明白啦func的用法:多個引數,前面的為委託方法的引數,最後乙個引數,為委託方法的返回型別。

static

void main(string

args)

這段**,放上來,仔細理解下,理解透徹啦,lambda表示式基本上也沒什麼啦。呵呵。。

算啦,我還是畫個圖算是結尾吧,以便於理解。

上段**的lambda表示式樹,圖。

Lambda表示式詳解

1 天真熱,程式設計師活著不易,星期天,也要頂著火辣辣的太陽,總結這些東西。2 夸夸lambda吧 簡化了匿名委託的使用,讓你讓 更加簡潔,優雅。據說它是微軟自c 1.0後新增的最重要的功能之一。lambda運算子 所有的lambda表示式都是用新的lambda運算子 可以叫他,轉到 或者 成為 運...

Lambda表示式詳解

1 天真冷啊,程式設計師活著不易,星期天,也要嗖嗖的北風,總結這些東西。2 夸夸lambda吧 簡化了匿名委託的使用,讓你讓 更加簡潔,優雅。據說它是微軟自c 1.0後新增的最重要的功能之一。lambda運算子 所有的lambda表示式都是用新的lambda運算子 可以叫他,轉到 或者 成為 運算子...

Lambda表示式詳解

lambda表示式在很多語言中應用,lambda表示式可以當作委託中的一種變形,委託的構建方便程式設計人員能夠在程式中傳入函式,相當於回掉函式。lambda表示式可以方便的構造匿名函式,如果 中裡面存有大量小的功能函式,而這些函式只被呼叫一次,不妨將他們重構成lambda表示式。比如需要計算a b,...