只要有委托参数类型的地方,就可以使用Lambda表达式。
LAMBDA运算符 “=>” 的左边列出了右侧Lambda主体中需要用到的参数,右边定义了Lambda的主体部分。
---------------------
(一)输入参数
在Lambda表达式中,输入参数是Lambda运算符的左边部分。
1.Lambda表达式参数列表中的参数必须在:参数数量、类型、位置 ,上与委托相匹配。
2.表达式的参数列表中的参数不一定需要包含类型(如:用隐士类型),除非委托有ref或out参数---这样的参数必须注明显示类型。
3.如果只有一个参数,并且是隐士类型,周围的圆括号可以被省略,否则必须有括号。
4.如果没有参数,必须使用一组空的圆括号。
5.输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割。
示例1
下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“This is a Lambda expression”字符串。
()=>Console.WriteLine("This is a Lambda expression.");
分析2
由于上述Lambda表达式的输入参数的数量为0,因此,该Lambda表达式的左边部分的一对小括弧不能被省略。
示例2
下面创建一个Lambda表达式,它的输入参数包含一个参数:m。该表达式将计算m参数与2的乘积。
m=>m*2;
分析2
上述Lambda表达式的输入参数省略了一对小括弧,它与“(m)=>m*2”Lambda表达式是等效的。
示例3
下面创建一个Lambda表达式,它的输入参数包含两个参数:m和n。该表达式将计算m和n参数的乘积。
(m,n)=>m*n;
(二)表达式或语句块
多个Lambda表达式可以构成Lambda语句块。语句块可以放到运算符的右边,作为Lambda的主体。根据主题不同,Lambda表达式可以分为表达式Lambda和语句Lambda。语句块中可以包含多条语句,并且可以包含循环、方法调用和if语句等。
示例1
下面创建一个Lambda表达式,它的右边部分是一个表达式。该表达式计算m参数的平方值。
m=>m*n;
分析1
如果Lambda表达式的右边部分是一个语句块,那么该语句块必须被"{"和"}"包围。
示例2
下面创建一个Lambda表达式,它的输入参数包括两个参数:m和n。该表达式的右边包含2个表达式;第一个表达式计算m和n参数的乘积,结果保存为result变量;第二个表达式显示result变量的值。
(m,n)=>{int result=m*n; Console.WriteLine(result);}
分析2
上述Lambda表达式的右边部分包含2个表达式,因此,该表达式的右边部分必须被"{"和"}"包围。
(三)