以前对事件和委托只是略微知道一点点,最近打算深入理解一下事件和委托的概念,学习过程中参考了一本不错的教材,下面的几篇委托和事件都是出自此本书,分享,供大家学习!
事件构建在委托的基础上,从本质上说,事件是一种信号机制,它在发生某种活动时自动地发出通知。它的工作原理为:若对某个事件感兴趣,则对象为该事件注册一个事件处理程序。在事件发生时,所有注册在此事件上的处理程序都会被调用。
事件处理程序是用委托表示的。
看一个简单的例子:
下面分析一下这个简单的程序:
首先,程序为事件处理程序声明了一个委托:
所有的事件都是通过委托触发的。事件委托定义了事件的返回类型和签名。事件委托可以指定参数。由于事件通常要实现多播委托,因此事件的返回类型一般为void。
然后,创建了一个事件类MyEvent,声明了一个名为SomeEvent的事件对象,关键字Event告诉编译器当前声明的是一个事件。
在MyEvent内部声明了OnSomeEvent()方法,应用程序通过调用该方法来触发事件。
所谓多播委托事件,与委托类似,这使得多个对象能够响应同一个事件的通知。