(**csdn論壇,由於對方也是**,所以源作者不詳)
有許多人問的,.net中的委託以及事件處理。我拿簡單的例子說明一下,是現實中的例子。比如說:
乙個公司(場景),你是老闆,手下有兩個員工,小張和小王。
你命令小王,如果小張玩遊戲,則小王扣去小張500元錢。
這就是現實中的委託。
實際上,在寫程式中,程式設計師就是老闆,小張和小王就是兩個物件。小張玩遊戲是乙個方法,小張還有乙個遊戲事件,他玩遊戲激發這個事件。而小王就是事件處理物件,他負責把小張的錢扣除500。
所以,委託有如下幾個要素:
1 激發事件的物件--就是小張
2 處理物件事件的物件--就是小王
3 定義委託,就是你讓小王監視小張。
如果這三個要素都滿足的話,則你就寫出了乙個完整事件的處理。
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); }
理解C 中的委託和事件
一直不甚至理解c 中委託和事件的概念和用法,在網上參看數篇文字之後略有所得,好記性不如爛鍵盤,故以文字記下。首先,設想乙個簡單場景 或許不太貼切 來說明,夜深人靜,屋裡有老鼠躡手躡腳的行動,且隨時提防著貓,如果聽到貓叫,老鼠聞聲立即逃回洞裡。這個場景可以抽象為委託和事件的幾個要素 貓和老鼠分別是兩個...
C 委託和事件的理解
委託 private delegate string getastring 委託的定義,使用delegate關鍵字 兩種指向方法的寫法 getastring a new getastring x.tostring a指向了x中的tostring方法 getastring a x.tostring 兩...
c 委託和事件再理解
委託 c 中的委託類似於 c 或 c 中的函式指標。使用委託使程式設計師可以將方法引用封裝在委託物件內。然後可以將該委託物件傳遞給可呼叫所引用方法的 而不必在編譯時知道將呼叫哪個方法。與 c 或 c 中的函式指標不同,委託是物件導向 型別安全的,並且是安全的。委託宣告定義一種型別,它用一組特定的引數...