Lambda表达式
C#3.0开始就可以使用一种新语法把实现代码赋予委托,即Lambda表达式。只要有委托类型的地方就可以使用Lambda表达式。匿名方法也可以改用Lambda表达式。
Lambda运算符=>
的左边列出了需要的参数,而其右边定义了实现代码。
参数
参数放在括号中用逗号隔开,如果只有一个参数可以不加逗号。
还可以在括号中给变量名添加参数类型。
参数还可以用_
替代。
闭包
通过lambda表达式可以访问lambda表达式块外部的变量,这称为闭包(closure)。
CRE:C++的lambda表达式访问外部变量,称为变量捕获。
调用匿名方法或Lambda表达式时,访问到的是外部变量最终的值,而不是声明该匿名方法或Lambda 表达式时的值。
如果给多个线程使用闭包,可能会遇到并发冲突。
(END)