C 委託及事件

2021-04-14 17:10:18 字數 983 閱讀 9126

有許多人問的,.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 委託及事件

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

C 委託及事件

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

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

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