發(fā)布者和訂閱者
通知事件發(fā)生的玉锌,就是發(fā)布者沪伙;
對某個(gè)事件關(guān)注瓮顽,就是訂閱者。
事件觸發(fā)和注冊
事件發(fā)生時(shí)围橡,會通知所有關(guān)注該事件的訂閱者暖混。
想在事件發(fā)生時(shí)被通知,必須注冊以表示關(guān)注翁授。
用程序語言解釋
事件發(fā)生時(shí)拣播,通知訂閱者,就是調(diào)用訂閱者的注冊函數(shù)收擦。注冊贮配,就是告訴發(fā)布者調(diào)用哪一個(gè)注冊函數(shù)。
事件聲明
delegate void Handler();
public event Handler NewDog;//Handler 是委托類型塞赂,NewDog為事件名
NewDog是一個(gè)成員泪勒,并且會被隱式自動初始化為null
事件訂閱
NewDog + = 方法 //關(guān)注
NewDog - = 方法 //取消關(guān)注
方法可以是,實(shí)例方法宴猾,靜態(tài)方法圆存,匿名方法、Lambda表達(dá)式
事件觸發(fā)
if(NewDog!=null){
NewDog();
}
事件可以理解為一種封裝的受限制的委托仇哆,委托當(dāng)中包含著訂閱者的注冊函數(shù)沦辙,事件觸發(fā)就是調(diào)閱委托當(dāng)中的回調(diào)函數(shù)。