事件
事件基於委託,為委託提供了一種發布/訂閱機制,觸發事件的類叫做發布者,而關心該事件有沒有發生,並等候通知的類叫訂閱者,而在中間又可以定義乙個訂閱系統,用來集中處理訂閱者對事件的訂閱和取消。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace eventpractice
}//搞事的人
class xiaoxie
}//傳入要買的食品相關資訊,交給觸發方法觸發事件
public
void
buyfood(foodeventargs e)
}//訂閱者小李,它包含乙個或多個與發布者委託型別相同的方法
class xiaoli
個買回來了", e.num, e.kind);}}
//訂閱者小龍
class xiaolong
個買回來了", e.num, e.kind);}}
//訂閱系統,在這個系統中,訂閱者將訂閱發布者的事件
//也就是小謝把東西買回來後,就能通知小李和小龍
class notice
//傳入notice的兩個主體,通知人小謝和食品資訊
public
notice (xiaoxie xiaoxie,foodeventargs e)
if (e.kind== "狼牙土豆")
//小謝買回食品,觸發事件
在結果中可以看到,小謝只買了小龍的食品,所以只對訂閱者小龍發了通知
委託和事件的區別:
委託是對方法的引用,可以在任何地方直接呼叫委託即可完成對方法的呼叫,而事件則有乙個發布事件的主體,時間只能在出了事的事件發布者中觸發,不能在其他地方呼叫,事件相當於出版社出了新書,發簡訊通知你可以來買書啦,這個事件是只發生在出版社當中的,是出了書才能觸發的,而委託則是任何人都知道你的手機號,都可以通知你來買書,但他到底出沒出書呢,只有他自己知道。
可以說,事件本質就是委託,事件是對委託的一種包裝,是委託的乙個例項,他使委託的使用範圍縮小,專用性和安全性提高。
Qt筆記 事件
qt中使用乙個物件表示乙個事件,繼承自qevent類。任何qobject子類例項都可以接收和處理事件。qmouseevent類用來表示乙個滑鼠事件。qwheelevent類用來表示滑鼠滾輪事件。常用函式 protected void mousepressevent qmouseevent event...
UI筆記 事件處理
事件概述 uievent 事件,是由硬體捕捉的乙個表示使用者操作裝置的物件。分為 觸控事件 晃動事件 遠端控制事件 觸控事件 uitouch uitouch代表觸控在螢幕上的一根手指。uiview支援觸控事件 因為繼承與uiresponder 而且支援多點觸控。需要定義uiview子類,實現觸控方法...
11 30筆記 事件
複習 物件導向 1.單例模式 2.工廠模式 3.構造模式 1.事件 什麼是事件 瀏覽器客戶端上客戶觸發發行為都稱為事件 所有的事件都是天生自帶的,不需要我們去繫結,只需要我們去觸發 通過obj.事件名 function 事件名 onmouseover onmouseout onmousedown o...