委托和类一样,是一种用于封装命名或匿名方法的用户自定义引用类型。 委托和类同级,类表示数据集合,委托表示对一个或多个方法的引用,储存的是一系列具有相同参数和返回类型方法的地址列表,调用委托时,此委托列表的所有方法都将被执行。
-作用理解:
+语言框架角度:
委托是.net中函数回调机制的实现方式。 是函数指针在面向对象中的封装, @@ -29,6 +29,45 @@
类型安全 可靠 +委托演进
++
+- c# 1.0:基本委托语法
+- c# 2.0:实例化可省略new 与 匿名方法
+- c# 3.0及以上版本:lambda 表达式(=> 读作 "goes to")
+- c# 3.0之后
+委托使用场景
+使用事件或事件设计模式时
+++就是Observer设计模式,它定义了对象之间一对多的关系,并且通过事件触发机制关联它们。当一个对象中发生了某事件后,依赖它的其他对象会被自动触发并更新。
+需要封装静态方法时
+++委托绑定的方法可以是静态方法、非静态方法和匿名方法,而C#中接口不能是静态的。
+调用方不需要访问实现该方法的对象中的其他属性、方法或接口时
+++类中的某个成员函数绑定到委托,调用该方法时只与这个成员函数有关,与该类里的其他属性无关。
+需要方便的组合时
+++一个委托绑定的多个方法可以自由组合。一个委托的对象可以绑定多个方法,而且这多个方法是没有限制可以任意组合的,委托灵活的绑定和解绑定策略使得使用非常方便。
+类可能需要该方法的多个实现时
+++一个委托的对象可以绑定多个方法(多播委托),当我们运行时需要的不是单一的方法时,接口很难实现。
+委托使用步骤:
+1、定义委托
+++
2、实例化委托
+++ +
3、调用(执行)委托
++