模擬主持人發布乙個問題,由多個嘉賓來回答這個問題。
分析:從需求中抽出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...