我爱Aspx >> VB.Net >> Henry的VB.NET之旅(十四)—动态关联事件与处理程序Henry的VB.NET之旅(十四)—动态关联事件与处理程序
y的VB.NET之旅(十四)—动态关联事件与处理程序
韩睿
“要解释新的事件处理程序的方法,我们需要先说几个重要的问题。”大李开始严肃起来,我也只得挪动一下身子,表现出正襟危坐的架势。
“我们首先讨论一下事件是怎么产生的。事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互,例如鼠标单击引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象叫做事件发送方(啊,听到这,Henry突然明白了事件处理程序中的第一个参量为什么叫Sender了,就是指事件发送的那个对象呀)。捕获事件并对其作出响应的对象叫做事件接收方。在事件通讯中,事件发送方类不知道哪个对象或方法将接收到它引发的事件。所需要的是在源和接收方之间存在一个媒介,或类似指针的机制。.NET 框架定义了一个特殊的类型Delegate,也就是委托,该类型提供函数指针的功能。”
“啊,我早就听说过委托的,就是不知道它是什么意思咧!”我做出期盼状。
“委托就是可用于调用其他对象方法的对象。与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用。”大李继续说着。
““噢,委托也就是一个函数指针喽。”我好象理解了一点。
“差不多,委托可以等效于一个类型安全函数指针或一个回调。但不同于函数指针,Visual Basic.NET 委托是基于 System.Delegate 类的引用类型,它可以引用我们先前说过的共享方法(详见《共享成员》一篇)和实例方法。”
“明白了一点。”我一边点头一边说,“我们想要动态调用事件处理程序,是不是就要利用委托来声明是哪个程序用于处理事件呀?”
大李惊异地看着我,露出了几分赞许。
“委托是.NET中的一个重要的类型,我们以后还需要详细讨论。现在我们需要关注的就是如何来通过操作委托来实现将事件与事件处理程序动态联系起来。”大李接着就开始修改代码:
【我对这篇文章有话说?】
Henry的VB.NET之旅(十五)—动态..[05-20]
.net入门之VB篇:Visual Basic.N..[05-20]
用VB.NET和Excel排生产计划--企业..[05-20]
如何用VB.Net创建一个三层的数据..[05-20]
在IE中使用VS.net WinForm控件[05-20]
在vb.net中实现窗体上回车键代替..[05-20]
用VB.net制作一个小程序(2)[05-20]
用VB.net制作一个小程序(3)[05-20]
用新VB.NET 枚举提高效率[05-20]
在VB.NET中实现拖放操作[05-20]
Henry的VB.NET之旅(十五)—动态..[05-20]
.net入门之VB篇:Visual Basic.N..[05-20]
用VB.NET和Excel排生产计划--企业..[05-20]
如何用VB.Net创建一个三层的数据..[05-20]
在IE中使用VS.net WinForm控件[05-20]
向Visual Basic程序员介绍泛型(..[05-20]
向Visual Basic程序员介绍泛型(..[05-20]
在vb.net中实现窗体上回车键代替..[05-20]
用VB.net制作一个小程序(2)[05-20]
用VB.net制作一个小程序(3)[05-20]