假如類a要和類b保持事件關聯,如果a發生了事情,類b的函式就要進行響應。那麼就可以採用委託的方式,實現這個功能。
在a類中建立乙個委託,這個委託和b中的響應函式的外表一模一樣(型別和傳的引數),然後在類b中將委託例項化,並被委託的方法進行關聯(例項化和關聯通常是一起進行的)。關聯之後這種a發生事件,b類的函式可以響應了。
具體的例子,是a是乙個鐘錶類,可以獲得當前的時間,b是乙個顯示時間的類,這個時候a的時間每次發生變化,b作為顯示方法,就要進行重新整理顯示。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading;
}//發布類
public class clock
}this.second = dt.second;
this.minute = dt.minute;
this.hour = dt.hour;//將當前類中的私有變數進行更新。}}
}
public class displayclock
public void timehaschanged(object theclock, timeinfoeventargs ti)
::", ti.hour.tostring(), ti.minute.tostring(), ti.second.tostring());}}
public class tester
}public class program
}}
C 裡的委託和事件實現
一 委託的簡介 1 委託的宣告 delegate handlername parameters 例如 public delegate void printhandler string str 委託宣告定義了一種型別,它用一組特定的引數以及返回型別來封裝方法。對於靜態方法,委託物件封裝要呼叫的方法。對...
C 的委託和事件
1 委託的使用和多播委託 宣告委託 public delegate int numberchanger string s 建立委託例項 numberchanger nc numberchanger nc1 new numberchanger addnum numberchanger nc2 new ...
學習隨筆(1) c 委託,delegate
c 委託delegate 類似於c 中的函式指標,就是給用a表達b,委託函式的 輸入引數個數0 32個,返回引數可有可無。例如public delegate int mydelegate int x,int y 表示有兩個引數,並返回int型。public delegate void mydeleg...