文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>大马哈鱼的C#学习笔记(1):lambda表达式

大马哈鱼的C#学习笔记(1):lambda表达式

时间:2011-04-14  来源:大马哈鱼1985

作为一个从C++转向C#的小码农,C#学习之路真的十分艰辛,一点都不像网上说的那样容易。

C#发展到4.0,丫的关键字还真特么多啊,貌似比C++多很多。

而且它又跟.NET密不可分,所以要学的东西那是一大箩啊。

从今天起陆续贴自己整理的笔记,如无特别说明,均为原创。

其中的一些知识点,可能来源于其他前辈的文章,我会尽量添加原文链接,如有遗漏的,请前辈勿怪。

另外,由于是初学者的个人笔记,错误在所难免,恳请各位读者斧正。

以后各篇文章就不加这个声明头了,一切从简。

lambda表达式是一个匿名函数,运算符是=>,很怪异哈

具体详解参见http://msdn.microsoft.com/zh-cn/library/bb397687.aspx

其实MSDN的链接中已经讲得很明白了,不过有点罗嗦,我在此讲一下自己的心得。

由于c#编程中,除了正儿八经的带有名字的方法外,只有delegate与方法打交道最为密切,所以lambda表达式通常用在初始化一个delegate时。

它的好处是可以省却额外搞一个方法的工作(当然,方法的实现部分是少不了的)。

例子:

        private delegate int Delegate1(int val);

        private static Delegate1 del1 = new Delegate1(add);

        private static int add(int val)

        {

            val++;

            return val;

        }

以上可以简写作:

        private delegate int Delegate1(int val);

        private static Delegate1 del1 = (v) => { v++; return v; };

是不是简洁明快了很多(不熟悉语法的话看了会不会觉得很混乱)?

当然,滥用lambda表达式会导致调试时出现比较混乱的局面,因为有可能lambda语句会运行在另一个线程中。

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载