事件2大要素
- 發(fā)布器(publisher)
是一個(gè)包含事件
和委托
定義的對(duì)象寄摆。事件和委托之間的聯(lián)系也定義在這個(gè)對(duì)象中宰翅。發(fā)布器(publisher)類(lèi)的對(duì)象調(diào)用這個(gè)事件掌桩,并通知其他的對(duì)象劫窒。
- 訂閱器(subscriber)
是一個(gè)接受事件并提供事件處理程序的對(duì)象。將訂閱器(subscriber)類(lèi)中的處理方法(事件處理程序)綁定到發(fā)布器(publisher)類(lèi)中的委托中闻蛀。
示例
public class TestEvt
{
public static void Main(string[] args)
{
EventPublClass eventTestClass = new EventPublClass();
Mouse mouse = new Mouse();
//將訂閱者處理函數(shù) 綁定 發(fā)布者事件
eventTestClass.clickHandlerEvent += mouse.mouseClick;
eventTestClass.userTriger();
}
}
internal class EventPublClass {
//1.聲明一個(gè)委托
public delegate void ClickHandler(string clickTime);
//2.聲明一個(gè)事件
public event ClickHandler clickHandlerEvent;
//3.聲明一個(gè)觸發(fā)事件的方法
public void userTriger()
{
clickHandlerEvent.Invoke("鼠標(biāo)事件觸發(fā)");
}
}
public class Mouse
{
public void mouseClick(String brand)
{
Console.WriteLine("鼠標(biāo)收到點(diǎn)擊事件信息:{0}", brand);
}
}