摘要: Lambda 的表达式的编写格式如下:x=> x * 1.5当中 “ => ” 是 Lambda 表达式的操作符,在左边用作定义一个参数列表,右边可以操作这些参数。例一, 先把 int x 设置 1000,通过 Action 把表达式定义为 x=x+500 ,最后通过 Invoke 激发委托。1 static void Main(string[] args)2 {3 int x = 1000;4 Action action = () => x = x + 500;5 action.Invok... 阅读全文
posted @ 2013-10-14 16:56 蚂蚁拉车 阅读(1500) 评论(0) 推荐(0) 编辑
摘要: 1 泛型委托 Predicate 早在Framework 2.0 的时候,微软就为 List 类添加了 Find、FindAll 、ForEach 等方法用作数据的查找。 public T Find ( Predicate match) public List FindAll(Predicate match) 在这些方法中存在一个Predicate 表达式,它是一个返回bool的泛型委托,能接受一个任意类型的对象作为参数。 public delegate bool Predicate(T obj) 在下面例子中,Predicate 委托绑定了参数为Person类的方法Match作... 阅读全文
posted @ 2013-10-14 16:52 蚂蚁拉车 阅读(938) 评论(0) 推荐(0) 编辑
摘要: 1 事件的由来 在介绍事件之前大家可以先看看下面的例子, PriceManager 负责对商品价格进行处理,当委托对象 GetPriceHandler 的返回值大于100元,按8.8折计算,低于100元按原价计算。 1 public delegate double PriceHandler(); 2 3 public class PriceManager 4 { 5 public PriceHandler GetPriceHandler; 6 7 //委托处理,当价格高于100元按8.8折计算,其他按原价计算 8 p... 阅读全文
posted @ 2013-10-14 15:29 蚂蚁拉车 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 在 Framework 2.0 出现之前,委托协变这个概念还没有出现。此时因为委托是安全类型,它们不遵守继承的基础规则。即会这下面的情况:Manager 虽然是 Worker 的子类,但 GetWorkerHander 委托不能直接绑定 GetManager 方法,因为在委托当中它们的返回值 Manager 与 Worker 被视为完全无关的两个类型。 1 public class Worker 2 {.......} 3 public class Manager:Worker 4 {.......} 5 6 class Progra... 阅读全文
posted @ 2013-10-14 14:11 蚂蚁拉车 阅读(176) 评论(0) 推荐(0) 编辑