【.Net】使用委託實現被引用的專案向上級專案的訊息傳遞事件

WeskyNet發表於2021-12-06

 

前言:在實際專案過程中,經常可能遇到被引用的專案要向上傳遞訊息,但是又不能通過方法進行返回等操作,這個時候委託就派上用場了。以下使用委託,來實現被引用的專案向上傳遞訊息的小教程,歡迎各位大佬提供建議。

1、新增控制檯專案(一般在CS架構中會用的比較多,用於跨執行緒傳遞訊息使用)。此處用一個控制檯專案來模擬演示使用委託進行訊息事件的傳遞教程。

 

 

 

 

2、新增了一個.net 6控制檯專案,然後先放一邊,後面使用。

 

 

 

 

 

3、在解決方案下面新增一個類庫專案。

 

 

 

4、專案名稱,此處叫DelegateTestLibrary

 

 

 

 

 

5、在新建的專案裡面,新增一個測試類TestService,並在類上面定義一個帶有兩個string引數的公開的委託TestDelegate(string par1,string par2);

引數型別可以自由定義,用於傳遞訊息使用。

 

 

 

 

6、然後在類裡面新增一個事件,事件型別為委託名稱。並且定義一個方法,叫DoDelegateHandle,可以做個簡單處理,然後用於給事件傳遞訊息使用。引數可以自定義。或者確保OnTest事件不為null的情況下,也可以省略這一步操作,直接丟資料。

 

 

 

 

7、新增一個測試方法,用來傳遞訊息。傳遞的訊息引數有當前的數值嗎,以及時間。

 

 

 

 

8、控制檯專案引用剛才的類庫專案。

 

 

 

 

9、控制檯專案新增一箇中間類,用於做測試使用。並且在建構函式內定義事件。

寫事件的時候,VS自帶快捷鍵,+=以後,可以按Tab按鍵,會自動生成一個對應的事件方法,並且引數和委託的引數保持一致。在裡面進行修改一些業務就可以了。

 

 

 

 

10、在控制檯program檔案裡面,例項化剛才的測試物件,然後進行測試。

 

 

 

 

11、啟動專案,可以看到被引用的專案裡面執行訊息傳送的地方(TestService)所傳送的訊息,被傳到了Realization類裡面的事件方法裡面去了。

 

 

 

 

12、總結一下:委託和事件在傳統的開發過程中很常見,應該很多大佬們都會。如果以前沒有玩過委託的大佬們,可以自行嘗試玩玩。祝大佬們玩程式碼愉快~~也歡迎留下寶貴的建議、或點贊或推薦,感謝~~

 

創作不易,且轉且留下出處:https://www.cnblogs.com/weskynet/p/15652569.html

相關文章