摘要: http://www.cnblogs.com/mcjtcnblog/archive/2009/01/08/1372203.html在.NET在,我们经常使用委托,委托的作用不必多说,在.NET 2.0之前,我们在使用委托之前,得自定义一个委托类型,再使用这个自定义的委托类型定义一个委托字段或变量。.NET 2.0给我们带来了Action、Func两个泛型委托,.NET3.0给我们带来了Lambda,这一切使得委托的定义和使用变得简单起来。下面的例子中的委托都使用了Lambda表达式。一.Action系列的泛型委托Action系列的委托定义的是没有返回值(返回值为void)的委托。它有多个版本包 阅读全文
posted @ 2012-08-17 19:47 渡蓝 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 本文转自:http://www.cnblogs.com/instance/archive/2011/05/22/2053541.html我们知道,在匿名方法或者lambda中,可以访问或者修改该匿的定义范围内的变量。例如:int num = 1; Func<int> incNum = () => ++num;其中lambda表达式使用了在其外部定义的变量num。我们可以认为该段lambda语句块构成了一个闭包,而这个闭包捕获了外部变量num。好了,不说那么多让人看着难受的定义套话了。我们进入正题,看看在C#中变量是如何被捕获的。来看一个例子:public Func<St 阅读全文
posted @ 2012-08-17 17:36 渡蓝 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 概念了解:1、什么是匿名委托(匿名方法的简单介绍、为什么要用匿名方法)2、匿名方法的【拉姆达表达式】方法定义3、匿名方法的调用(匿名方法的参数传递、使用过程中需要注意什么)什么是匿名方法?匿名方法是C#2.0引入的一个新特性,它允许开发者声明自己的函数代码而无须使用委托函数。C#为委托提供一种机制,可以为委托定义匿名方法,匿名方法没有名称,编译器会定指定一个名称,匿名方法中不能使用跳转语句跳转到该匿名方法的外部,也不能跳转到该方法的内部。也不能在匿名方法外部使用的ref和out参数。通过使用匿名方法,可以不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。例如,如果创建方法所需的系统开 阅读全文
posted @ 2012-08-17 14:23 渡蓝 阅读(7385) 评论(3) 推荐(0) 编辑