模擬主持人發布乙個問題,由多個嘉賓來回答這個問題。
分析:從需求中抽出host (主持人) 類和guests (嘉賓) 類。
作為問題的發布者,host不知道問題如何解答。因此它只能發布這個事件,將事件委託給多個嘉賓去處理。因此在host 類定義事件,在guests類中定義事件的響應方法。通過多番委託的"+="將響應方法新增到事件列表中,最終 host 類將觸發這個事件。實現過程如下:
**其實很少下面貼出來所有**:
questionargs.cs
using system; using system.collections.generic; using system.linq; using system.text; namespace eventdemo } }
program.cs
using system; using system.collections.generic; using system.linq; using system.text; namespace eventdemo , new guestb(), new guestc() }; //用+=號,將嘉賓的答題方法加入到委託鏈 host.questionevent += new questionhandler(garray[0].answer); host.questionevent += new questionhandler(garray[1].answer); host.questionevent += new questionhandler(garray[2].answer); //觸發事件 host.startanswer(); console.readline(); } } }
host.cs
using system; using system.collections.generic; using system.linq; using system.text; namespace eventdemo public host() public string name public void startanswer() } }
guests.cs
using system; using system.collections.generic; using system.linq; using system.text; namespace eventdemo public virtual void answer(object sender, questionargs e) } }
guestc.cs
using system; using system.collections.generic; using system.linq; using system.text; namespace eventdemo 開始答題:我不知道", this.name); } } }
guestb.cs
using system; using system.collections.generic; using system.linq; using system.text; namespace eventdemo 開始答題:我不知道", this.name); } } }
guesta.cs
using system; using system.collections.generic; using system.linq; using system.text; namespace eventdemo 開始答題:我不知道", this.name); } } }
執行結果:
C 自定義事件整理專案 EventDemo
模擬主持人發布乙個問題,由多個嘉賓來回答這個問題。分析 從需求中抽出host 主持人 類和guests 嘉賓 類。作為問題的發布者,host不知道問題如何解答。因此它只能發布這個事件,將事件委託給多個嘉賓去處理。因此在host 類定義事件,在guests類中定義事件的響應方法。通過多番委託的 將響應...
C 事件 自定義事件
事件有很多,比如說 滑鼠的事件 mousermove,mouserdown等。鍵盤的事件 keyup,keydown,keypress。有事件,就會有對事件進行處理的方法,而事件和處理方法之間是怎麼聯絡起來的呢?委託就是他們中間的橋梁,事件發生時,委託會知道,然後將事件傳遞給處理方法,處理方法進行相...
c 自定義事件
此 摘自 叩響c 之門 c sharp view plain copy using system 事件傳送者 class dog 事件接收者 class host 註冊事件處理程式 public host dog dog 現在來觸發事件 class program 午夜零點小偷到達,看門狗引發ala...