您的位置:首页 > 其它

[.NET]lambda表达式的优势

2012-12-11 13:36 274 查看
委托,如果不追究细节,从表面上来看我们可以将其通俗地理解为一个安全的“函数指针”。当然,这个函数指针其实也是一个对象,有自己的成员,也会封装了被调用方的上下文等等。http://blog.zhaojie.me/2009/08/from-delegate-to-others.html

http://blog.zhaojie.me/2009/03/anonymous-method-false-sharing.html

http://blog.zhaojie.me/2009/06/laziness-traps.html#comment_kbYt7e3T02o0000b

匿名方法是.NET 2.0中引入的高级特性,“匿名”二字说明它可以把实现内联地写在一个方法中,从而形成一个委托对象,而不用有明确地方法名,

匿名方法的优势在于自动形成闭包,而它的缺点也是让程序员“不自觉”地创建了闭包,这会让某些对象的生命周期加长。

警惕匿名方法造成的变量共享

当这些对象被匿名方法带到多线程中之后,他们被共享了,问题就来了…

http://blog.zhaojie.me/2009/08/from-delegate-to-others-2.html

不仅仅是语法上的便利,不仅仅是少写点代码。

在使用Lambda表达式的实现中,代码变得“声明式(declarative)”了许多。所谓“声明式”,便是“声称代码在做什么”,而不像“命令式 (imperative)”的代码在“操作代码怎么做”。换句话说,“声明式”关注的是“做什么”,是指“what(to do)”。

有没有构造新的容器,又是怎么向容器里添加元素的……这些细节,使用Lambda表达式的代码一概不会关心;编译器替我们做了,我们只需要定好要筛选哪类元素等等标准就行了。

此文链接赵劼的不少文章,本文是这些链接的笔记。在此表示感谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: