20140912-事件与委托

1、委托

1)各书籍中,大家都在说委托,但大家口中的委托是不同的。大家阐述的角度不同。

理解委托3个角度:

①委托类型:委托是形式上对方法的抽象,方法类。

②委托变量:持有零个或多个方法的对象。委托变量与典型的对象不同,可以执行委托,这时委托会执行它所"持有"的方法。

③委托机制:类型安全的回调函数实现的一种机制。

2)技术落脚点

①从机制的角度理解

②从对象的角度使用委托(变量)。

A赋值

B把方法放到(或说封装到)委托变量,当做参数传递

C委托字段+对应的属性

3)杂乱思考

[引言,我该如何定义机制和模型这两个概念]

1)一切皆是对象。方法也可以是对象。

2)广义:委托机制。声明委托类型+声明委托类型变量+创建对象(实例,以第一个方法初始化实例),并赋值给委托变量+调用委托对象

狭义:角度①:委托对象。

         角度②:可以认为委托是持有一个或多个方法的对象。

         角度③:public delegate string Mydelegate(int number);就针对这一行理解,是对方法的抽象,方法类;

---------------------------------------------------------------------------------------------------------------------------------

2、事件

1)如果说委托机制,那么事件当称为事件模型

①立足于下图一条语句理解,事件即委托变量。

②事件是建立于委托机制之上的,对委托的封装。且,委托是引用类型,事件是类成员。因为是类成员了,是封装后的了,更安全了。

③事件是当某些事发生时,运行另一块中指定方法的机制。

④有发布者/订阅者模式,可以成为事件模型。

2)技术落脚点

没必要记忆事件模型,会委托即会事件了,区别只在一个event关键字上。

原文地址:https://www.cnblogs.com/CharlesZHENG/p/3968141.html