C 委託及事件

2021-04-06 19:10:58 字數 765 閱讀 1129

有許多人問的,.net中的委託以及事件處理。我拿簡單的例子說明一下,是現實中的例子:

比如說乙個公司(場景),你是老闆,手下有兩個員工,小張和小王。

你命令小王,如果小張玩遊戲,則小王扣去小張500元錢。

這就是現實中的委託。

實際上,在寫程式中,程式設計師就是老闆,小張和小王就是兩個物件。小張玩遊戲是乙個方法,小張還有乙個遊戲事件,他玩遊戲激發這個事件。而小王就是事件處理物件,他負責把小張的錢扣除500。

所以,委託有如下幾個要素:

1 激發事件的物件--就是小張

2 處理物件事件的物件--就是小王

3 定義委託,就是你讓小王監視小張。

如果這三個要素都滿足的話,則你就寫出了乙個完整事件的處理。

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 委託及事件

有許多人問的,net中的委託以及事件處理。我拿簡單的例子說明一下,是現實中的例子 比如說乙個公司 場景 你是老闆,手下有兩個員工,小張和小王。你命令小王,如果小張玩遊戲,則小王扣去小張500元錢。這就是現實中的委託。實際上,在寫程式中,程式設計師就是老闆,小張和小王就是兩個物件。小張玩遊戲是乙個方法...

C 委託及事件

1.什麼是委託 委託 delegate 是乙個類,其定義了方法的型別,以實現將方法作為引數傳入另乙個方法。即委託可看作一種自定義的方法型別,可模擬自定義的資料型別來理解。使用者如果要使用委託,和c 中引用類的方法一樣,需要乙個例項化的載體。那這個載體就是事件 event 2.什麼是事件 事件是建立在...

C 委託及事件委託的初步理解

委託的宣告 public delegate void mydelegate string str 委託是一種特殊的型別 class 用途是來實現對一種方法的封裝。在某種事件發生時,自動呼叫該方法。好處顯然易見,它使使用者可以自定義自己的方法實現,通過封裝,clr會在相應事件激發時呼叫你定義的方法,實...