前面已經具體說明了委託,這裏重點解析事件。(關於委託和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();
}