今天在csdn的論壇看到的帖子,寫的不錯,就貼上來了。
兩個例子均用現實的例子來解釋委託事件的處理過程。很好!
第乙個例子
public delegate void eateventhandler(object sender, eateventargs e);
這個的定義也可以不要這樣.可以直接就定義乙個引數
public delegate void eateventhandler(string e); 但然用的時候的引數要相對應好哦
using system;
namespace nseventsample
///
/// 這個委託用來說明處理吃飯事件的方法的方法頭(模式)
///
public delegate void eateventhandler(object sender, eateventargs e);
///
/// 引發吃飯事件(eateevent)的類master(主人),這個類必須
/// 1.宣告乙個名為eatevent的事件: public event eateventhandler eatevent;
/// 2.通過乙個名為oneatevent的方法來引發吃飯事件,給那些處理此事件的方法傳資料;
/// 3.說明在某種情形下引發事件呢?在餓的時候。用方法hungrg來模擬。
///
public class master }
//當主人餓的時候,他會指定吃飯地點和消費金額。
public void hungry(string restrauntname, decimal moneyout)
吃飯,消費元", e.restrauntname, e.moneyout);
//引發事件
oneatevent(e);
} }
///
/// 類servant(僕人)有乙個方法arrangefood(安排食物)來處理主人的吃飯事件
///
public class servant
", e.restrauntname);
console.writeline("準備消費 -- 元 ", e.moneyout);
console.writeline("好的,正給您安排。。。。。。。。");
console.writeline("主人,您的食物在這兒,請慢用");
} }
///
/// 類god安排qinshihuang(秦始皇)的僕人是lisi(李斯),並讓李斯的arrangefood
/// 方法來處理qinshihuang的吃飯事件:qinshihuang.eatevent += new eateventhandler(lishi.arrangefood);
///
public class god }
} 第二個例子**於:
比如說乙個公司(場景),你是老闆,手下有兩個員工,小張和小李。你命令小張注意小李,在開發軟體工作的時候如果上網打遊戲,你就記錄下來,從小李工資裡扣100元錢。這個實際上就是現實中的委託。
現在給出乙個**,c#控制台程式,編譯執行通過
using system;
namespace csharpconsole
}// 負責扣錢的人
public class 小王
public void 扣錢(object sender,eventargs e)
}// 如果玩遊戲,則引發事件
public class 小張
public int 錢 // 此屬性可以操作小張的錢。
set}
public void 玩遊戲()
protected virtual void onplaygame(eventargs e)}}
// 定義委託處理程式
public delegate void playgamehandler(object sender,system.eventargs e);
}
關於委託事件的一兩個很好的例子!
兩個例子均用現實的例子來解釋委託事件的處理過程。很好!第乙個例子 public delegate void eateventhandler object sender,eateventargs e 這個的定義也可以不要這樣.可以直接就定義乙個引數 public delegate void eatev...
一些委託事件的工作原理 兩個不錯的例子
第乙個例子 思歸給的委託事件參考站點 public delegate void eateventhandler object sender,eateventargs e 這個的定義也可以不要這樣.可以直接就定義乙個引數 public delegate void eateventhandler str...
關於學習委託事件的經典例子!
兩個例子均用現實的例子來解釋委託事件的處理過程。很好!第乙個例子 public delegate void eateventhandler object sender,eateventargs e 這個的定義也可以不要這樣.可以直接就定義乙個引數 public delegate void eatev...