C 學習 1 C 的事件和委託的實現和思考

2021-06-17 18:11:01 字數 850 閱讀 8689

假如類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...