1.委托得声明、实例化和调用
(1)委托:本质是一个类,继承自System.MulticastDelegate,里面内置了几个方法,如构造函数等。
(2)声明委托:委托无方法体,可以有返回值或参数,也可以没有
(3)实例化委托
调用时.Invoke可省略;不带返回值
带返回值
(4)多种途径实例化
(5)利用委托封装通用的异常处理
2.委托:解耦,减少代码重复
调用:
3.委托的意义:异步多线程
4.委托的意义:多播委托(不能异步),如果多播委托带返回值,则以最后一个结果为准
“+=”:按顺序增加,依次执行
“-=”:按顺序移除,如果没有合适的也不会异常
5.事件,观察者模式
(1)观察者模式
当我们有一个动作,能触发N个动作时,每一次改动都会影响主程序
这时我们可以使用委托,把具体动作事件封装出去
(2)事件:事件是带event关键字的委托的实例;事件是委托类型的一个实例;安全保障,event可以限制变量被外部调用或赋值,子类也不能调用,只有声明者才能调用。