C 委託與事件講解 二

2022-02-07 21:05:19 字數 1336 閱讀 5190

什麼是事件?event?點選事件?載入事件?一連串的模糊的概念衝擊著我們弱小的腦袋

那我們首先來看一下比較正統的感念吧:

事件是類在發生其關注的事情時用來提供通知的一種方式。

事件的發生一般都牽扯2個角色

事件發行者(publisher):乙個事件的發行者,也稱作是傳送者(sender),其實就是個物件,這個物件會自行維護本身的狀態資訊,當本身狀態資訊變動時,便觸發乙個事件,並通知說有的事件訂閱者。

事件訂閱者(subscriber):對事件感興趣的物件,也稱為receiver,可以註冊感興趣的事件,在事件發行者觸發乙個事件後,會自動執行這段**。

**//

發布者(publiser)

public

class

publisher}}

//subscriber 訂閱者,無賴小明

public

class

mrming}//

subscriber 訂閱者,悲情人物小張

public

class

mrzhang

}class

story

}編譯結果如下

如果童靴們,從上到下仔細看一邊的話,我想應該知道什麼是發布者,什麼是訂閱者了吧,那至於事件呢

我們先看這句

publisher.onpublish 

+=new

publisher.publisheventhander(mrming.receive);

這就是小明向出版社訂閱他喜歡看的火影忍者,小張沒有訂閱所以小張沒有收到書,

我們再仔細看看這個賦值語句,是不是似曾相識過呢?是的就是我們在上一講,在講委託宣告的時候,簡直就是乙個眸子裡刻出來的嘛

委託賦值:

bugticketeventhandler mydelegate =

newbugticketeventhandler(mrzhang.buyticket);

所以,大家不要對事件有什麼好怕的,其實事件的本質就是乙個委託鏈,

我們看一下事件的宣告:

//宣告乙個出版的委託

public

delegate

void

publisheventhander

();//

在委託的機制下我們建立以個出版事件

public

event

publisheventhander 

onpublish;

在我們使用事件的時候,必須要宣告對應的委託,而觸發事件,其實就是在使用委託鏈。

C 委託與事件講解 三

protected void btnsearch click object sender,imageclickeventargs e 那他們到底表示什麼呢?在回答上面的問題之前,我們先搞懂 net framework的編碼規範 一 委託型別的名稱都應該以eventhandler結束。二 委託的原型定...

C 委託與事件講解 一

從序言中,大家應該對委託和事件的重要性有點了解了吧,雖然說我們現在還是能模糊,但是從我的大白話系列中,我會把這些概念說的通俗易懂的。首先,我們還是先說說委託吧,從字面上理解,只要是中國人應該都知道這個意思,除非委託2個中文字不認識,舉個例子,小明委託小張去買車票。但是在我們的程式世界裡,也是這麼的簡...

C 委託與事件講解(序言)

在講委託,事件之前,我想問大家乙個非常簡單的問題,也許在我們日常的程式設計中基本上每天都會遇到,但是卻往往不去了解的地方,請以下 protected void page load object sender,eventargs e protected void grdbill rowdeleting...