C 中的委託和事件

2021-06-17 20:58:28 字數 1444 閱讀 3567

較好地理解委託和事件對很多接觸c#時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真是太容易了,下面的例子如果能很好的理解了,那麼基本的委託和事件就基本有所了解了!

namespace 委託和事件

//方法三委託的定義

public delegate void greetdelegate(string name);

static void main(string args)

//方法一問候

public static void greetpeople(string name)

public static void englishgreeting(string englishname)

!",englishname);

}//方法二問候

public static void greeting(string name,language lang)

}public static void greetingchinese(string chinesename)

!",chinesename); }

public static void greetingenglish(string englisname)

!",englisname); }

//方法三的問候

//委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞,

//這種將方法動態地賦給引數的做法,可以避免在程式中大量使用if-else(switch)語句,同時使得程式具有更好的可擴充套件性。

public static void greetingpeople(string strname,greetdelegate makegreeting)

public static void chgreeting(string chname)

",chname); }

public static void engreeting(string enname)

",enname); }

//事件一的問候:實際應用中,通常都是 greetpeople 在乙個類中,

//chinesegreeting和 englishgreeting 在另外的類中。現在你已經對委託有了初步了解,

//是時候對上面的例子做個改進了。假設我們將gtingpeople()放在乙個叫greetingmanager的類中,

//那麼新程式應該是這個樣子的:

private static void eggreeting(string name)

",name);

}private static void cegreeting(string name)

",name);}}

}greetingmanager類

namespace 委託和事件

//public void gtpeople(string name)}}

}

C 中的委託和事件

委託類似於c 中的函式指標,c 中的委託申明如下 delegate void mydelegate 只要該委託執行的方法與委託申明的簽名一致,就能呼叫委託來執行該方法,例如在本例中,有個方法為 void method 那麼就可以如下呼叫 mydelegate delegate new mydeleg...

C 中的委託和事件

委託 和 事件在 net framework中的應用非常廣泛,然而,較好地理解委託和事件對很多接觸c 時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真是太容易了,而沒有過去的人每次見到委託和事件就覺得心裡憋得慌,渾身不自在。本文中,我將通過兩個範例由淺入深地講述什麼是委託 為什麼...

C 中的委託和事件

1 委託 委託是定址方法的.net版本。它在功能上與c 中的函式指標類似,但是函式指標不是型別安全的,因為無法判斷這個指標實際上是指向什麼,引數和返回型別也不知道。而委託則是型別安全的類,它定義了返回型別和引數的型別。委託類既可以引用乙個方法,也可以引用多個方法。我們用書上的乙個例子來看如何使用委託...