一、lambda表达式语法
Lambda表达式可以有多个参数、一个参数,或者没有参数。
格式:
(参数列表)=>表达式或语句块
表现形式为
1.一个参数:param=>expr
2.多个参数:(param-list)=>expr
Lambda表达式的格式实例
- (x, y) => x * y //多参数,隐式类型=> 表达式
- x => x * 5 //单参数, 隐式类型=>表达式
- x => { return x * 5; } //单参数,隐式类型=>语句块
- (int x) => x * 5 //单参数,显式类型=>表达式
- (int x) => { return x * 5; } //单参数,显式类型=>语句块
- () => Console.WriteLine() //无参数
二、Lambda表达式注意事项
1、捕获的变量将不会被作为垃圾回收,直至引用变量的委托超出范围为止。
2、在外部方法中看不到 Lambda 表达式内引入的变量。
3、Lambda 表达式无法从封闭方法中直接捕获 ref 或 out 参数。
4、Lambda 表达式中的返回语句不会导致封闭方法返回。
5、Lambda 表达式不能包含其目标位于所包含匿名函数主体外部或内部的 goto 语句、break 语句或 continue 语句。
6、Lambda表达式的本质是“匿名方法”,即当编译我们的程序代码时,“编译器”会自动将“Lambda表达式”转换为“匿名方法”
7、在 is 或 as 运算符的左侧不允许使用 Lambda。
8、适用于 匿名方法 的所有限制也适用于 Lambda 表达式。
参考资料: asp.net lambda表达式 http://www.studyofnet.com/news/271.html