摸了一下C 的委託事件,用自己的理解描述一遍

2021-05-23 01:53:52 字數 1288 閱讀 2693

看了一些資料,有些講的太術語話,在委託和事件轉來轉去中,按我個人的理解,把他描述一遍,可能不夠準確。

委託就好像將乙個很他形狀一樣的函式裝進他裡面去,當出項很多函式函式簽名,引數一樣時,就可以使用委託來決定使用哪個函式,我把他看做是乙個類中類或是物件中物件這樣子。

比如 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.宣告事件 委託 ...