c Lamdba表示式與委託

2021-06-22 06:11:23 字數 2306 閱讀 3888

介紹:

「lambda

表示式」

(lambda expression)

是乙個匿名函式,在c#

3.0中引入了

lambda

表示式,它是對匿名函式的一種簡化,可以包含表示式和語句,並且可用於建立委託或表示式目錄樹型別。

如何建立

格式:

( 形參列表 ) =>

若要建立

lambda

表示式,需要在

lambda

運算子=>

左側指定輸入引數(如果有),然後在另一側輸入表示式或語句塊。

例如,lambda

表示式x => x * x

指定名為

x的引數並返回

x的平方值。

如下面的示例所示,你可以將此表示式分配給委託型別:

delegate int del(int i);

static void main(string args)

注意:函式體多於一條語句的可用大括號括起。

以上函式體也可以寫成

del mydelegate = x => ;
使用lambda

表示式=> 運算子具有與賦值運算子

(=) 相同的優先順序並且是右結合運算

僅當(x,y) => x == y

使用

lamdba

語句語句

lambda 與表示式 lambda 表示式類似,只是語句括在大括號中:

delegatevoid testdelegate(string s);

…testdelegatemydel = n => ;

mydel("hello");

**中如何利用lamdba

lambda 在基於方法的

linq 查詢中用作標準查詢運算子方法(如where)的引數

。引數是委託型別

system.func。 使用 lambda 表示式建立該委託最為方便。

看例項

public delegate tresult func(targ0 arg0)
可以將委託例項化為

funcmyfunc,其中 int是輸入引數,bool 是返回值。 返回值始終在最後乙個型別引數中指定。 func定義包含兩個輸入引數(int 和 string)且返回型別為 bool 的委託。 當呼叫下面的 func 委託時,該委託將返回 true 或 false以指示輸入引數是否等於 5:

funcmyfunc = x => x == 5;

boolresult = myfunc(4); // returns false of course

//專案中用到的乙個小例子 

public commoditycollection load(string type));}

return中的load

方法實際上是乙個具有泛型的委託,p為繼承實現了sqlclausebuilderuw

的方法

[serializable]

public abstract class sqlclausebuilderuw : sqlclausebuilderiuw

public tcollection load(actionwhereaction);

namespacesystem

小結:綜合應用可以看出

lamdba

可以簡化查詢的方法,並且在

linq

的使用中多與泛型委託,列舉的

where

方法結合使用。是查詢方式簡化了很多,但是內部構造卻與匿名函式相同的.也是剛剛接觸了解,不足之處還請諒解。

c Lamdba表示式與託付

介紹 lambda 表示式 lambda expression 是乙個匿名函式,在c 3.0中引入了 lambda 表示式,它是對匿名函式的一種簡化,能夠包括表示式和語句,而且可用於建立託付或表示式資料夾樹型別。怎樣建立 格式 形參列表 若要建立 lambda 表示式,須要在 lambda 運算子 ...

委託與Lambda表示式

先不急說委託和lambda表示式,先看兩個例子再說 1.通過委託,為乙個數字加10,如下 class program public static int zengshi int a 2.使用lambda表示式,為乙個數字加10,如下 class program 上面例2 p p 10 中的p是例1委...

匿名委託與Lambda表示式

通過使用匿名委託 匿名方法 使程式設計變得更加靈活,有關委託與匿名委託請參考我的前一篇blog 委託與匿名委託 繼續之前示例,如下 static void main string args worker worker new worker int result worker.handletwonum...