动态关联事件与处理程序
来源:优易学  2010-1-15 15:48:37   【优易学:中国教育考试门户网】   资料下载   IT书店
  “要解释新的事件处理程序的方法,我们需要先说几个重要的问题。”大李开始严肃起来,我也只得挪动一下身子,表现出正襟危坐的架势。

  “我们首先讨论一下事件是怎么产生的。事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互,例如鼠标单击引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象叫做事件发送方(啊,听到这,henry突然明白了事件处理程序中的第一个参量为什么叫sender了,就是指事件发送的那个对象呀)。捕获事件并对其作出响应的对象叫做事件接收方。在事件通讯中,事件发送方类不知道哪个对象或方法将接收到它引发的事件。所需要的是在源和接收方之间存在一个媒介,或类似指针的机制。.net 框架定义了一个特殊的类型delegate,也就是委托,该类型提供函数指针的功能。”

  “啊,我早就听说过委托的,就是不知道它是什么意思咧!”我做出期盼状。

  “委托就是可用于调用其他对象方法的对象。与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用。”大李继续说着。

  ““噢,委托也就是一个函数指针喽。”我好象理解了一点。

  “差不多,委托可以等效于一个类型安全函数指针或一个回调。但不同于函数指针,visual basic.net 委托是基于 system.delegate 类的引用类型,它可以引用我们先前说过的共享方法(详见《共享成员》一篇)和实例方法。”

  “明白了一点。”我一边点头一边说,“我们想要动态调用事件处理程序,是不是就要利用委托来声明是哪个程序用于处理事件呀?”

  大李惊异地看着我,露出了几分赞许。

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训