事件 委托

E神课程记录 2018-05-09

委托&事件: 可以把一堆可变的动作/行为封装出去,交给第三方来制定

public delegate void Delegate();
public Delegate DelegateHander;
public Event Delegate EventDelegateHander;
Event关键字 可以限制变量被外部调用/直接赋值

DelegateHander() == DelegateHander.Invoke() 调用实例
DelegateHander.BeginInvoke(callback,object) 异步调用

多播委托:一个变量保存多个方法,可以增减;invoke的时候可以按顺序执行
+= 为委托实例按顺序增加方法,形成方法链,Invoke时,按顺序依次执行
-= 为委托实例移除方法,从方法链的尾部开始匹配,遇到第一个完全吻合的,移除且只移除一个,没有也不异常
多播委托是不能异步的不支持beginInvoke()

委托和事件的区别和联系
委托: 是一个类型
事件: 是委托类型的一个实例

程序设计的时候,我们可以把程序分成俩部分 一部分是固定的,直接写死;还有不固定的地方,通过一个事件去开放接口,外部可以随意扩展动作

框架:完成固定/通用部分,把可变部分留出扩展点,支持自定义


本文由 布墨 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。
阅读:279

还不快抢沙发

添加新评论