前面已经具体说明了委托,这里重点解析事件。(关于委托和Lambda:委托与Lambda表达式)
一.委托与事件的关系:
二.事件的定义:
事件(event)的声明的语法如下:
public event 委托类型 事件名;
例子:
//定义一个委托
public delegate void delegateRun();
//定义一个事件
public event delegateRun eventRun;
事件的使用方法:
class Program { static void Main(string[] args) { EvtHandler evt = new EvtHandler(); evt.evtAct += evt_evtAct; evt.evtHandler += evt_evtHandler; evt.handler(); Console.ReadKey(); } static void evt_evtHandler(object sender, EventArgs e) { Console.WriteLine("事件处理者"); } static void evt_evtAct() { Console.WriteLine( "委托事件"); } } public class EvtHandler { public event EventHandler evtHandler; public event Action evtAct; public void handler() { evtHandler(null,null); evtAct(); } }
三.使用事件需要的步骤:
四.订阅事件:
定义好事件后,与事件有关的人会订阅事件,只有订阅事件的对象才会收到发生事件的通知,没有订阅该事件的对象则不会收到通知。
订阅事件的语法如下:
事件名+=new 委托名(方法名);
五.引发事件:
public event MyDel eventRun;
public
void
Begin()
{
eventRun();
}
原文:http://www.cnblogs.com/fengxuehuanlin/p/6536525.html