C 學習筆記 事件的統一關聯(集中處理)

2021-10-17 18:51:04 字數 995 閱讀 8630

在程式開發中,遇到控制項要關聯類似的事件,重複輸入關聯是一件很繁瑣的事情,所以可以使用事件統一關聯的處理方式,符合物件導向程式設計的開閉原則。

開閉原則:程式拓展,封閉修改。

以下是原始的關聯方式,比較繁瑣,當程式有上千個控制項需要關聯時,介面和關聯都會顯得很臃腫。

//關聯事件

+= new system.eventhandler(this.btn_click);

+= new system.eventhandler(this.btn_click);

+= new system.eventhandler(this.btn_click);

+= new system.eventhandler(this.btn_click);

+= new system.eventhandler(this.btn_click);

+= new system.eventhandler(this.btn_click);

+= new system.eventhandler(this.btn_click);

+= new system.eventhandler(this.btn_click);

使用遍歷控制項集合的方式,統一關聯事件,在後續的開發中,如需新增新的控制項,不許要修改**,**簡潔,高效。在tag後面加?是因為tag沒有資料的時候被用,可能會出現位將物件引用例項的異常,?在這裡是判斷tag是否為空,為空則不執行後續**。

//通過遍歷的方式關聯事件,以後程式開發中,若有拓展,封閉修改(對控制項要統一關聯事件)

foreach(control item in this.controls)

}

關聯的事件,sender是當前控制項物件,由sender是object型別,所以需要轉化成相應的型別

private void btn_click(object sender, eventargs e)

關聯事件demo鏈結的

C 學習筆記 事件

事件 事件基於委託,為委託提供了一種發布 訂閱機制,觸發事件的類叫做發布者,而關心該事件有沒有發生,並等候通知的類叫訂閱者,而在中間又可以定義乙個訂閱系統,用來集中處理訂閱者對事件的訂閱和取消。using system using system.collections.generic using s...

c 記事本程式設計 學習筆記(一)

這估計是我的第乙個c 程式吧 如果helloworld不算 雖然只寫了開頭,應該是沒什麼猶豫,為了督促自己搞定這個記事本,故有此文。考慮到自己的習性,部落格可能會不定時更新,運氣好每天都有更,但願每天都好運。廢話略多,進入正題。高中學過vb,加上後來接觸過au3,畫個視窗還是駕輕就熟。由於對c 很不...

C 中的事件 C 學習筆記

事件 事件 event 是一種使類或物件能夠提供通知的成員。事件的宣告與字段類似,不同的是事件的宣告包 含 event 關鍵字,並且型別必須是委託型別。在宣告事件成員的類中,事件的行為就像委託型別的字段 前提是該事件不是抽象的並且未宣告訪問器 該欄位儲存對乙個委託的引用,該委託表示已新增到該事件的事...