C 實戰反射 事件 抽象工廠 發布訂閱模式

2021-08-13 02:15:03 字數 1023 閱讀 6397

最近一直在做乙個新系統,其中小部分任務需要用到事件監聽觸發的過程。自己先練練手。

首先是,listener的**,監聽者監聽到事件後需要作出的反應。

public void reportwork(eventdata data)

public void finalinspect(eventdata data)

}}再來乙個事件資料類,在我們的系統裡,這種類就是資料庫資料乙個對映。我們可以把它理解為一條資料,一旦生成這個類物件即一條資料,即觸發上面的方法。

public string name1

public string value1

}}再來乙個抽象事件類及幾個具體事件類,用於建立上面的事件資料物件,相當於通過這些不同的類來生成不同型別的資料。

public void trigger(eventdata eventdata)

}} public override eventdata createeventdata(dictionarydic)

}} public override eventdata createeventdata(dictionarydic)

}} public override eventdata createeventdata(dictionarydic)

}}然後,我們通過反射的方式,建立我們想要的事件類,就是上面的三種。

}}然後,就是發布資訊的publisher了,給它也設三個方法,對應上述的類和方法。注意,不同的方法註冊不同的事件,可以傳引數。

public void reportwork()

public void finalinspect()

}}最後,我們在main方法中呼叫這些發布者的方法,看看能不能觸發監聽者們的回應。

public static void main(string args)

public static void testevent1()

執行一下,成功

謝謝大家!

c 反射機制 抽象工廠

using system.configuration 預設使用之前要新增引用對應的dll 之前用抽象工廠模式類名沒法變啊,還是要手動寫出要例項化的類,重新編譯 但是,反射機制的出現使得我們通過修改配置檔案無需再次編譯!具體如下 修改配置檔案的sqlserver即可 配置檔案 源 using syst...

C 事件發布與訂閱例題

要求 實現多個書店對應多個客戶的到書通知,且圖書領域與顧客的興趣領域一致才通知顧客 分析 首先,分析物件和屬性 書店 名稱 顧客 興趣領域 名稱 分析函式 興趣領域函式 書店 事件函式 新書到店 名稱函式 get set 顧客 名稱興趣領域函式 get set 通知函式 輸出語句 通知函式與事件函式...

C 委託事件機制 訂閱發布

在看下文的時候,你先要明白乙個問題,什麼是委託,什麼是事件。但其實很讓人頭疼無解的是,即使有的時候你明白了這些原理,但在實際的運用中還是一臉懵逼,無從下手。其實在很多的時候,你可能在wpf,winfrom的使用的多,不過這坑爹玩意又不能不去弄明白!委託和事件 委託 方法作另乙個方法的引數 和類一樣,...