Qt的事件-槽與C#的事件委託 類似

Qt中定義了Q_OBJECT後,會爲每個這樣的類生成一個moc信息,有一個編號,和這個編號對應的signal或者slot的名稱。connect的時候就把調用哪個slot的編號確定下來,同時檢查slot的函數簽名是否一致,從來實現所謂的“類型安全”,然後在觸發slot的時候,會根據這個編號,來調用相應的方法。
託,就是包裝的函數指針,在創建委託的時候,會把函數名稱和函數指針在內部對應起來,clr根據函數名稱來確定傳入委託的函數指針是否是類型安全的。然後根據函數指針來調用函數。然後MS有擴展了編譯器,搞出了2.0中的擴展方法,3.5裏面的lambda expression這些花裏胡哨的東西,其實實質都是一樣的,實例化一個委託。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章