前面已经具体说明了委托,这里重点解析事件。(关于委托和Lambda:委托与Lambda表达式)html
事件(event)的声明的语法以下:安全
public event 委托类型 事件名;ide
例子:post
//定义一个委托 public delegate void delegateRun(); //定义一个事件 public event delegateRun eventRun;
事件的使用方法:spa
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(); } }
定义好事件后,与事件有关的人会订阅事件,只有订阅事件的对象才会收到发生事件的通知,没有订阅该事件的对象则不会收到通知。code
订阅事件的语法以下:htm
事件名+=new 委托名(方法名);对象
public event MyDel eventRun;blog
public
void
Begin()
继承
{
eventRun();
}