介紹:
「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...