看了一些資料,有些講的太術語話,在委託和事件轉來轉去中,按我個人的理解,把他描述一遍,可能不夠準確。
委託就好像將乙個很他形狀一樣的函式裝進他裡面去,當出項很多函式函式簽名,引數一樣時,就可以使用委託來決定使用哪個函式,我把他看做是乙個類中類或是物件中物件這樣子。
比如 public delegate void message(connection sender,messagearg e);
可以通過 _message=new message(某個函式名)來呼叫某個函式
使用時 就_message(引數名)來使用
事件,我今天想了一下 ,什麼時候會使用事件,按下某個按鈕就會發生反應時最典型的事件了,如果換其他場景,我們自定義事件的話,跟使用執行緒和標準的函式應用應該只是異曲同工吧。
不說了,看委託和事件如何結合吧。
先宣告乙個委託,因為事件的應用要和點陣圖繫結在一起,所以先把老大找出來。public delegate void message(connection sender,messagearg e);
在以這個宣告為基礎,個人可以認為他是類。然後宣告乙個事件,關鍵字event說明他是事件,public event message messagea;
將二者繫結起來messagea += new message(mc.display);
產生乙個事件messagea(this,new messagearg("test"));
三部曲完成委託與事件的結合使用,以下是具體的例子。
namespace test
set
}public messagearg()
public messagearg(string s)
}namespace test
set
}public connection()
public connection(string s)
public void run()
public void display(connection c, messagearg e) ,the message is ",c.name,e.m);
}using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace test}}
你會發現display這個函式所需要的東西,和run這個函式產生的事件是緊密結合,可以找得到答案的,這就是所謂的繫結吧。順便說一下,是因為他們都在同個物件才用this的吧,個人看法,客**待。
C 中的委託事件的分析
推薦 委託和事件在 net framework 中的應用非常廣泛,然而,較好地理解委託和事件對很多接觸 c 時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真是太容易了,而沒有過去的人每次見到委託和事件就覺得心裡堵得慌,渾身不自在。本章中,我將由淺入深地講述什麼是委託 為什麼要使用...
C 委託 事件 自定義事件的理解
一 委託 委託類似於函式指標,但函式指標只能引用靜態方法,而委託既能引用靜態方法,也能引用例項方法。委託使用分三步 1 委託宣告。2 委託例項化。3 委託呼叫。例程一 using system namespace 委託 private int add int num1,int num2 例中,委託n...
我對委託 事件委託的一點理解
1.宣告關於事件的委託 public delegate void alarmeventhandler object sender,eventargs e 以上,宣告乙個委託,類似c語言中宣告乙個函式指標的型別,這個型別說明了 由它去宣告的指標 所指向的函式 的引數型別和返回型別。2.宣告事件 委託 ...