c# 中delegate 關鍵字 定義了一種 叫做委託的東西。。可以稱之為一種方法級的約束
可能有些人會說delegate就是c++或者c中的指向函式的指標。對於這種說法 個人感覺不確切。我的定義大概是這樣委託是一種型別,它代表了一類方法的型別。可以說成是一類指向相同格式函式的指標的型別,把指標型別化。表示的是一類。
說這點可能不是很明白看例子:
委託定義:
namespace mydelegate
public delegate void notifyeventhander(int a);//定義委託 這個是定義了一種型別 和定義test是一樣的。都是引用型別
public class test
我們定義乙個東西是為了使用它。以及使用它帶來的好處。
先看使用:
public class plane
public static void max(int a)
console.writeline("max");
public static void min(int x)
console.writeline("min");
void main(string args)
notifyeventhander aa,bb;//定義類的例項 下面需要對例項賦值。
aa=plane.max;//max 方法是完全符合委託所定義的方法的約束。
aa+=plane.min;//委託繫結多個方法 當呼叫時同時呼叫所繫結的所有方法
aa(5);//呼叫
//通過以上例子看出委託實際上是乙個類 是方法的型別。。
簡單來說就是委託 定義了aa、bb 所能代表的方法的種類,也就是aa、bb的型別
下一階段看委託作用。和實際應用。。
C 中委託和事件
當我們在窗體下定義變數後,是不是可以輕而易舉在此窗體使用這個變數呢?那麼如果跨窗體引用呢?其實也簡單,普遍操作,定義乙個全域性變數,但是這樣操作不規範,取而代之的是應該在某個窗體定義乙個類,然後在類中宣告乙個靜態變數,此時跨窗體使用的時候直接使用classname.staticname 既然變數可以...
C 中委託與事件
c 為了型別安全,預設並不支援指標。而是採用委託的方式。委託的宣告 屬性 修飾符 delegate 返回型別 委託型別名 引數列表 其中返回型別和引數列表共同決定了委託型別能關聯的一組方法 public delegate int tdelegate int a,int b 宣告委託 在類classd...
C 中委託和事件的區別
大致來說,委託是乙個類,該類內部維護著乙個字段,指向乙個方法。事件可以被看作乙個委託型別的變數,通過事件註冊 取消多個委託或方法。本篇分別通過委託和事件執行多個方法,從中體會兩者的區別。通過委託執行方法 class program public class examplevoid print str...