C 中委託和事件機制。。 個人總結

2022-05-06 18:24:08 字數 880 閱讀 5346

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...