溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解.NET靜態(tài)事件鏈

發(fā)布時間:2021-11-25 13:57:27 來源:億速云 閱讀:156 作者:柒染 欄目:編程語言

本篇文章為大家展示了如何理解.NET靜態(tài)事件鏈,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

在我們?nèi)粘i_發(fā)過程中經(jīng)常會遇到多個類實例之間的關聯(lián),不管是B/S還是C/S的項目,在對實例的使用是一樣的;只不過C/S的項目比較好控制,不管是UI層的對象都能很好的控制,包括繼承、重寫等等;而在B/S里面可能不太方便。

由于B/S本身的特點,不能暴露內(nèi)部太多的繼承關系,以免不小心破壞類的封閉性;我這主要是討論在多個類實例之間怎么進行動態(tài)關聯(lián),比如我們在開發(fā)Winform項目的時候,可能會碰到兩個或多個窗口之間協(xié)同工作的情況;本人在這種情況下采用的是靜態(tài)事件鏈的解決方案,多個實例之間不存在主次之分,有人肯定會覺得在一個類中定義事件,在調(diào)用的類中去實例化并訂閱相關事件;這樣解決不了多實例互操作的關系。

比如:我有五個窗口分布在主界面中,當我點擊菜單欄中的一個刷新按鈕時,想讓這五個窗口同時刷新,這樣一來就必須讓這五個窗口實例都訂閱來自一個地方的事件;我為什么用靜態(tài)事件,就是為了方便多實例使用。

1、

如何理解.NET靜態(tài)事件鏈

2:

如何理解.NET靜態(tài)事件鏈

3:

如何理解.NET靜態(tài)事件鏈

圖3中是靜態(tài)事件鏈類的定義,定義一個靜態(tài)事件好一個靜態(tài)方法,注意本人在該類中也訂閱了ClickEvent事件,就是怕沒有任何實例訂閱這個靜態(tài)事件,然后又觸發(fā)了這個事件,導致空地址封送失敗,也就是空引用調(diào)用;

4:

如何理解.NET靜態(tài)事件鏈

圖4是模擬窗口的一個實現(xiàn),在構(gòu)造函數(shù)中我們訂閱了靜態(tài)事件鏈中的一個ClickEvent事件;其余四個窗口都是一樣的,我就不貼圖片了;

5:

如何理解.NET靜態(tài)事件鏈

6:

如何理解.NET靜態(tài)事件鏈

7:

如何理解.NET靜態(tài)事件鏈

靜態(tài)事件鏈就講完了,通過一點觸發(fā)多點的好方法,在我們開發(fā)過程中經(jīng)常用到。

上述內(nèi)容就是如何理解.NET靜態(tài)事件鏈,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI