【中低階級】-事件(Event)、委派(Delegate)

閱讀時間約 4 分鐘
  本篇要分享的是事件(Event)與委派(Delegate),這兩者時常都會綁再一起,怎麼說呢?我們先來各別了解什麼是Event?什麼是Delegate?他們都在做些什麼事呢?

一、事件(Event)

  事件(Event)是事情的發生、狀態的發生或改變,也可以說是對於這件事去「做通知」這個動作。好比說:有客人來會按門鈴,按下門鈴後就會有鈴聲響起,這就是一個事件。另外一個說法可以說「監聽」,門鈴等待著有緣人來按下它,等待著被觸發。
  那麼也有個用法就是「訂閱」,假若你訂閱了文章雜誌,那麼它更新的時候就會通知你,在程式中會使用「+=」或者「-=」來代表新增訂閱或者取消訂閱。
  還記得之前的例子,當我們建立一個button(或是其他工具箱裡的物件)快速點兩下進入寫程式的地方時,它就會幫我們先列出這一行的程式(如下)
private void button1_Click(object sender, EventArgs e)
這時button_Click它使用的是件處理器是EventHandler,該處理器就需要有兩個參數一個是名為sender的object、另一個是名為e的EventArgs,這兩個是沒有傳回值的。

怎麼知道處理器是EventHandler?

初始化組件
先看到Form1中有個InitializeComponent(初始化組件)進入看一下它的定義,從中找到button1區塊,可以看到button1.Click使用+=有去訂閱EventHandler這個處理器,也就是說當按下button1按鈕時,它就會觸發button1_Click,也就會去執行我們之前在此按鈕中寫下的程式內容。
主程式-按鈕觸發

二、委派(Delegate)

  也有人稱為「委託」,一件事件的發生一定會有傳送方和接收方,介於這兩者中間的媒介就是委派(Delegate)。也就是說客人(傳送方)按下門鈴後,經過門鈴內部的一些處理再去觸發讓鈴聲可以響起,使家人(接收方)聽到,這就是委派。另外一個比喻就是主管叫下屬做事情,就是委託下屬幫忙做事情,這也就是委派。

三、如何使用?看例子


Step1:建立主動方(傳送方)類別,例子:雜誌
Step2:建立被動方(接收方)類別,例子:訂閱者
Step3:主程式撰寫
主動方(傳送方)Class雜誌
被動方(接收方)Class訂閱者
主程式
說明:
【ClassMagazine類別】
1.先將第一步(紅色底線)先做宣告
(delegate是委派所以先做宣告,事件發生時對訂閱者做通知的內容。
event是事件因此再以委派的型別再去做事件項目的宣告也就是newArticle。
[也就是新的文章出來的時候,就會透過委派方式去通知訂閱者,告訴他們新的文章內容] )

2.第二步(綠框)建立方法
(雜誌有一個方法就是新增文章,它有兩個參數也就是作者和文章內容,由於不確定是否有人訂閱,因此就要使用第三步來做判斷)

3.第三步(藍框)判斷是否有人訂閱
(若沒有人訂閱的話,那麼newArticle= null,因此當有人訂閱時才會去通知訂閱者,newArticle.Invoke()這一個Invoke參數指的就是一開始delegate所定義的參數,它會直接跑到訂閱者的那個類別方法去[也就是主程式的訂閱者的NotifyMe方法中去執行])
※判斷是否有人訂閱這邊的名稱通常會在前面加上On為開頭


【ClassSubscriber類別】
1.這邊的宣告Name指的是訂閱者是誰,Msg就是顯示訊息
2.這邊有個方法是NotifyMe也就是通知我
(當有人訂閱了文章,執行了「雜誌類別」中的newArticle.Invoke()這一行,它就會跑進來這邊作執行,因為主程式的訂閱者使用的是NotifyMe方法,因此才會再執行的時候跑進來)

【主程式】
1.第一步(紅框)建立雜誌公司名為Kitty_Magazie
2.第二步(綠框)建立使用者名為Peggy、Anna
3.第三步(藍框)Peggy、Anna去訂閱Kitty_Magazie
(他們訂閱了Kitty_Magazie後,當Kitty_Magazie新增文章時[雜誌類別做的事],它就會做通知的動作[訂閱者類別中的NotifyMe去做執行])
4.那麼我們用label1用訊息文字來看一下執行狀況。
我們看一下執行結果:
執行結果
※建議自己操作一次,並且逐步執行了解一下他們之間的關聯會比較好理解哦~

參考資料:
1.C# 事件(Event)
2.[C#語法] 事件(Event)使用簡單三步
3.C# 事件(上) - 使用委派來實作事件
4.C# 事件(下) – 加上event關鍵字
5.C#事件(Event)
為什麼會看到廣告
21會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言0
查看全部
發表第一個留言支持創作者!
橙果杏的沙龍 的其他內容
  本篇要分享的內容包含Enum、Dictionary、Stack、Queue、IComparable<T>、IComparer<T>、CompareTo、Compare等等相關內容。它們與Array和List有些類似,都是資料集合存取或資料其他相關處理的部分,我們就來看一看它們是何方神聖吧~
  物件導向說到這邊其實修飾詞不只有之前所提的public、private這些,還有可能遇到抽象(abstract)、虛擬(virtual)、覆寫(override)、隱藏(new)、密封(sealed)、介面(interface)等等,我們就來看一下它們的差異吧~
三、多型(polymorphism)   多型就是在同事物下使用不同條件就可以表現出不同的形態。舉例來說:以「小貓」為例它會有不同的屬性,包括品種、名字、年齡等等,對於每一隻就會有不同的動作如:趴、走、坐、跑等等行為。那麼 .小貓就屬於「同一事物」 .品種、名字、年齡這些就屬於「不同條件」 .趴、走
二、繼承(inheritance) 繼承就是假如A(子)類別去繼承B(父)類別,那麼A(子)類別可以直接去使用B(父)類別非私有的屬性和方法,但是A(子)只能繼承一個B(父)類別ㄛ! 一樣的道理可以比喻為:爸爸跟小孩之間的關係。小孩可以去運用爸爸的資源,但是爸爸的工作屬於他自己的不能跟小孩一起分享,
,先來分享一下封裝是怎麼一回事。 一、封裝(Encapsulation) 封裝就是把一些功能的處理程序或是資料包起來,也對於程式碼做權限的設定做一層保護的機制,這是為了防止程式碼被竄改,所以有了封裝可以保障我們資料的隱密性,甚至封裝也是一種將一些處理程序隱藏起來,讓使用者使用時可以更加單純。 1.什
  物件導向(Object Oriented Programming,又稱OOP),在程式領域中很常會看到一些英文代稱,如果不懂的話就比較會不知道在說些什麼,所以除了知道中文名稱外也要稍微知道一下它的代稱是什麼會比較好唷! 一、什麼是物件導向?   把程式寫出來的功能集合成一個類別(class),接
  本篇要分享的內容包含Enum、Dictionary、Stack、Queue、IComparable<T>、IComparer<T>、CompareTo、Compare等等相關內容。它們與Array和List有些類似,都是資料集合存取或資料其他相關處理的部分,我們就來看一看它們是何方神聖吧~
  物件導向說到這邊其實修飾詞不只有之前所提的public、private這些,還有可能遇到抽象(abstract)、虛擬(virtual)、覆寫(override)、隱藏(new)、密封(sealed)、介面(interface)等等,我們就來看一下它們的差異吧~
三、多型(polymorphism)   多型就是在同事物下使用不同條件就可以表現出不同的形態。舉例來說:以「小貓」為例它會有不同的屬性,包括品種、名字、年齡等等,對於每一隻就會有不同的動作如:趴、走、坐、跑等等行為。那麼 .小貓就屬於「同一事物」 .品種、名字、年齡這些就屬於「不同條件」 .趴、走
二、繼承(inheritance) 繼承就是假如A(子)類別去繼承B(父)類別,那麼A(子)類別可以直接去使用B(父)類別非私有的屬性和方法,但是A(子)只能繼承一個B(父)類別ㄛ! 一樣的道理可以比喻為:爸爸跟小孩之間的關係。小孩可以去運用爸爸的資源,但是爸爸的工作屬於他自己的不能跟小孩一起分享,
,先來分享一下封裝是怎麼一回事。 一、封裝(Encapsulation) 封裝就是把一些功能的處理程序或是資料包起來,也對於程式碼做權限的設定做一層保護的機制,這是為了防止程式碼被竄改,所以有了封裝可以保障我們資料的隱密性,甚至封裝也是一種將一些處理程序隱藏起來,讓使用者使用時可以更加單純。 1.什
  物件導向(Object Oriented Programming,又稱OOP),在程式領域中很常會看到一些英文代稱,如果不懂的話就比較會不知道在說些什麼,所以除了知道中文名稱外也要稍微知道一下它的代稱是什麼會比較好唷! 一、什麼是物件導向?   把程式寫出來的功能集合成一個類別(class),接
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
如果你曾凌虐身邊的低階眾生,那麼,你要有心理準備,因為總有一天他們會轉生為人,被殺生者來索命,被凌虐者來找麻煩,不管你逃到天涯海角,或是能逃過今生,終究要償還業報。 我在這裡所說的低階眾生,不只是指困在畜牲色身的狗貓牛羊魚蝦,也指那些剛剛從畜牲道,轉生為人的弱勢族群。
Thumbnail
日本人享有世界公認的健康長壽生活,背後隱藏著一系列的生活和飲食習慣。 研究表明,僅僅遵循一項特定的飲食習慣就能使死亡率降低15%。 那麼,是什麼秘密讓日本人能夠健康長壽呢? 以下是揭開日本人健康長壽的六個秘密。 ### 1. 高攝取海鮮 日本是一個島國,海鮮是日本飲食中的重要組成部分。 富含
Thumbnail
*歐元區商業疲軟 增加了經濟衰退的可能性 *美禁令影響 中國CSP高階AI伺服器明年出貨比低於4% *10月工業生產指數連17黑 製造業表現兩樣情 *10月批發零售業營業額降0.9% 零售、餐飲業則表現亮眼
Thumbnail
     此書用較為詼諧嬉鬧的手法呈現劇情。講述為了調查起獲貪贓枉法的三江口盧局長失蹤案,而從中央空降神探來辦案的張一昂刑警,如何在人生地不熟又敵我不明的情況下,能急中生智、吉星高照、否極泰來,乍看不按牌理出牌或恣意妄為,卻能接連破獲重大刑案,擄獲眾人信任的推理喜劇。  
Thumbnail
談到面試這件事,我可能真的有很多甘苦談可以分享給大家。發表《面試不成的12個原因(上)最好是不符所需啦!》及《面試不成的12個原因(下)被當分母了》兩篇文章後,受到不少的關注,我決定再來分享跟面試有關的三個彩蛋。 面試是每個上班族都會遇到的。本文這三個彩蛋,或許你可以稱之為經典、離譜、不專業⋯⋯
Thumbnail
近期巨大展延票期風暴,引發市場關注庫存與現金流問題。 11/23法說會,巨大稱,雖然中低階車銷售緩、零件堆高,但中高階車仍強,且中國解封、市場復甦,有望消化中低階車款。 下半年中低階車搶貨潮不再,毛利率、營益率同降;中高階車則面臨零組件缺貨、出貨不順,無法回到2018年常態。
Thumbnail
重點先行: Ebike鍊條技術門檻高,前三季年增30%,搭配chainring可組自行車系統、合併銷售。高階品成長動能看好。 從傳統零件製造商,到佈局品牌服務,目前在歐洲、北美有多間銷售據點搶市,有品牌護城河。 原物料、匯率不利因素淡化,助推毛利率。但中低階產品庫存修正持續,需留意後市。
Thumbnail
因為有部分讀者可能沒跟上個人的思路,所以再寫此篇完整交代個人這波低價純銀行股思考過程的轉折。 首先,不管節奏是否跟上,都請不用擔心,低價純銀行股個人一直以臺企銀、遠東銀為例子的主因,在於節奏即使不同,反應時間都會相當充足,不會有那種差個一天,就有天堂地獄之別的情況發生。
Thumbnail
當我們的靈識經過「隔陰之迷」,六識七識的記憶被完全清空後,從出生的那一刻起,我們就已經是低階肉身的「奴隸」了。 因為,人類童年期的「五蘊」,都是以「生物層次」本能架構起來的「意識作業平台」,等到了青少年和成年,大部分凡夫就會因此產生「身見我執」...
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
如果你曾凌虐身邊的低階眾生,那麼,你要有心理準備,因為總有一天他們會轉生為人,被殺生者來索命,被凌虐者來找麻煩,不管你逃到天涯海角,或是能逃過今生,終究要償還業報。 我在這裡所說的低階眾生,不只是指困在畜牲色身的狗貓牛羊魚蝦,也指那些剛剛從畜牲道,轉生為人的弱勢族群。
Thumbnail
日本人享有世界公認的健康長壽生活,背後隱藏著一系列的生活和飲食習慣。 研究表明,僅僅遵循一項特定的飲食習慣就能使死亡率降低15%。 那麼,是什麼秘密讓日本人能夠健康長壽呢? 以下是揭開日本人健康長壽的六個秘密。 ### 1. 高攝取海鮮 日本是一個島國,海鮮是日本飲食中的重要組成部分。 富含
Thumbnail
*歐元區商業疲軟 增加了經濟衰退的可能性 *美禁令影響 中國CSP高階AI伺服器明年出貨比低於4% *10月工業生產指數連17黑 製造業表現兩樣情 *10月批發零售業營業額降0.9% 零售、餐飲業則表現亮眼
Thumbnail
     此書用較為詼諧嬉鬧的手法呈現劇情。講述為了調查起獲貪贓枉法的三江口盧局長失蹤案,而從中央空降神探來辦案的張一昂刑警,如何在人生地不熟又敵我不明的情況下,能急中生智、吉星高照、否極泰來,乍看不按牌理出牌或恣意妄為,卻能接連破獲重大刑案,擄獲眾人信任的推理喜劇。  
Thumbnail
談到面試這件事,我可能真的有很多甘苦談可以分享給大家。發表《面試不成的12個原因(上)最好是不符所需啦!》及《面試不成的12個原因(下)被當分母了》兩篇文章後,受到不少的關注,我決定再來分享跟面試有關的三個彩蛋。 面試是每個上班族都會遇到的。本文這三個彩蛋,或許你可以稱之為經典、離譜、不專業⋯⋯
Thumbnail
近期巨大展延票期風暴,引發市場關注庫存與現金流問題。 11/23法說會,巨大稱,雖然中低階車銷售緩、零件堆高,但中高階車仍強,且中國解封、市場復甦,有望消化中低階車款。 下半年中低階車搶貨潮不再,毛利率、營益率同降;中高階車則面臨零組件缺貨、出貨不順,無法回到2018年常態。
Thumbnail
重點先行: Ebike鍊條技術門檻高,前三季年增30%,搭配chainring可組自行車系統、合併銷售。高階品成長動能看好。 從傳統零件製造商,到佈局品牌服務,目前在歐洲、北美有多間銷售據點搶市,有品牌護城河。 原物料、匯率不利因素淡化,助推毛利率。但中低階產品庫存修正持續,需留意後市。
Thumbnail
因為有部分讀者可能沒跟上個人的思路,所以再寫此篇完整交代個人這波低價純銀行股思考過程的轉折。 首先,不管節奏是否跟上,都請不用擔心,低價純銀行股個人一直以臺企銀、遠東銀為例子的主因,在於節奏即使不同,反應時間都會相當充足,不會有那種差個一天,就有天堂地獄之別的情況發生。
Thumbnail
當我們的靈識經過「隔陰之迷」,六識七識的記憶被完全清空後,從出生的那一刻起,我們就已經是低階肉身的「奴隸」了。 因為,人類童年期的「五蘊」,都是以「生物層次」本能架構起來的「意識作業平台」,等到了青少年和成年,大部分凡夫就會因此產生「身見我執」...