1、委托
1)各书籍中,大家都在说委托,但大家口中的委托是不同的。大家阐述的角度不同。
理解委托3个角度:
①委托类型:委托是形式上对方法的抽象,方法类。
②委托变量:持有零个或多个方法的对象。委托变量与典型的对象不同,可以执行委托,这时委托会执行它所"持有"的方法。
③委托机制:类型安全的回调函数实现的一种机制。
2)技术落脚点
①从机制的角度理解
②从对象的角度使用委托(变量)。
A赋值
B把方法放到(或说封装到)委托变量,当做参数传递
C委托字段+对应的属性
3)杂乱思考
[引言,我该如何定义机制和模型这两个概念]
1)一切皆是对象。方法也可以是对象。
2)广义:委托机制。声明委托类型+声明委托类型变量+创建对象(实例,以第一个方法初始化实例),并赋值给委托变量+调用委托对象
狭义:角度①:委托对象。
角度②:可以认为委托是持有一个或多个方法的对象。
角度③:public delegate string Mydelegate(int number);就针对这一行理解,是对方法的抽象,方法类;
---------------------------------------------------------------------------------------------------------------------------------
2、事件
1)如果说委托机制,那么事件当称为事件模型。
①立足于下图一条语句理解,事件即委托变量。
②事件是建立于委托机制之上的,对委托的封装。且,委托是引用类型,事件是类成员。因为是类成员了,是封装后的了,更安全了。
③事件是当某些事发生时,运行另一块中指定方法的机制。
④有发布者/订阅者模式,可以成为事件模型。
2)技术落脚点
没必要记忆事件模型,会委托即会事件了,区别只在一个event关键字上。