我們將事件的發起者(Event Source)稱為Publisher
鲨魚正在網上潛水
filename: Program
class Program {
static void Main(string[] args) {
//鲨魚的腦袋
GetOutPublisher sharkMind = new GetOutPublisher();
//鲨魚的身體
GetOutSubscriber sharkBody = new GetOutSubscriber();
//建立鲨魚的神經系統單元
GetOutEventHandler eventAction
GetOutEventHandler eventAction
GetOutEventHandler eventAction
//把鲨魚的神經系統單元與腦子聯系起來
sharkMind
sharkMind
sharkMind
//外面天氣不錯
sharkMind
}
}
delegate void GetOutEventHandler(Object source
就算出門的時候帶什麼東西吧~~~ ^ ^!
filename
class GetOutEventArgs : System
// 出門帶啥東西呢?
private string _takeWhat;
public GetOutEventArgs() {
this
}
public GetOutEventArgs(string strTakeWhat) {
if (strTakeWhat
this
} else {
this
}
}
public string TakeWhat {
get {
return _takeWhat;
}
set {
_takeWhat = value;
}
}
}
filename
class GetOutSubscriber {
public void OpenTheDoor(Object source
// 開門
Console
}
public void PutDownWhat(Object source
// 放下手中的東西
Console
}
public void CloseTheDoor(Object source
// 關門
Console
}
}
filename
class GetOutPublisher {
//Publisher 說
public event GetOutEventHandler OnGetOutHandler;
//Publisher 產生具體的事件
protected void OnGetOut(GetOutEventArgs e) {
//有誰來負責處理事件嗎?
if (null != this
//讓他們來處理吧
OnGetOutHandler(this
}
}
//對外公開的接口
public void DecideGetOut() {
OnGetOut(new GetOutEventArgs());
}
}
Step
Step
Step
Step
Step
具體可以參考
Open the door
Put down Nothing
Close the door
From:http://tw.wingwit.com/Article/program/net/201311/12430.html