zhouqijie

Lambda表达式

C#3.0开始就可以使用一种新语法把实现代码赋予委托,即Lambda表达式。只要有委托类型的地方就可以使用Lambda表达式。匿名方法也可以改用Lambda表达式。

Lambda运算符=>的左边列出了需要的参数,而其右边定义了实现代码。

参数

参数放在括号中用逗号隔开,如果只有一个参数可以不加逗号。

还可以在括号中给变量名添加参数类型。

参数还可以用_替代。

闭包

通过lambda表达式可以访问lambda表达式块外部的变量,这称为闭包(closure)

CRE:C++的lambda表达式访问外部变量,称为变量捕获

调用匿名方法或Lambda表达式时,访问到的是外部变量最终的值,而不是声明该匿名方法或Lambda 表达式时的值。

如果给多个线程使用闭包,可能会遇到并发冲突。

(END)