我也談委託與事件

2022-03-25 09:10:07 字數 1189 閱讀 6879

雖然在裡面已經有很多關於c#委託和事件的文章,但是為了自己在學習的過程中,加深對委託的理解,我還是決定寫一下自己的心得體會。以備他日在回來複習。委託(delegate)是乙個類,但是這個類在宣告的時候跟普通的類有些不同。不帶class 關鍵字等。如下:

view code

static

void

main(

string

args)

static

void

sayhello(

string

name)

static

void

sayhellotoo(

string

name)

public

delegate

void

dosomething(

string

name);

//宣告乙個委託類

static

event

dosomething myevent;

//宣告乙個dosomething型別的事件。

public

static

void

test()

新建乙個委託物件,就相當於該物件是引數(方法)的指標應用,一般事件,都是針對於某一具體的委託的事件。乙個事件可以繫結多個方法,事件觸發後,繫結的方法會依次被執行。 在其他牛人的部落格內,有乙個很好的舉例。在windows程式設計中,在設計器中雙擊乙個按鈕button1.會自動生成該button的單擊響應函式:

private void button1_click(object sender, eventargs e)

{你會發現幾乎所有方法都是兩個引數的:object sender, eventargs e。微軟為這些方法定義了乙個委託private system.eventhandler(object sender,eventargs e)。我們檢視:designer.cs裡面button1物件的屬性。有乙個click的事件屬性,繫結了button1_click方法。

this.button1.click += new system.eventhandler(this.button1_click) 。

有一點我不明白的是:事件與委託物件有關係嗎,在宣告事件的時候,也是關於某個委託的事件,而委託物件,也是關於該委託的物件。難道那麼都是該委託類的物件?

我對委託與事件的理解

以下是我對於委託與事件的理解,如果有理解不到位的地方,請各位朋友幫忙指正,謝謝!一 委託 1 定義 拋開書上的意義,委託其實就是方法的 事例 比如你需要讓3個人,每個人分別去做某一件事情,但此時你有這三個人的 人 即這三個人的主管或者上司 只需要做的事情就是告訴這個 人這三個人分別要做的事情,之後這...

委託與事件

1.建立乙個類,分別建立加 減 乘 除四個方法,通過委託和事件,實現 輸入兩個計算數,完成所有的四個方法的呼叫,計算出結果顯示。建立乙個警察 policeman 類,乙個小偷 thief 類,例項化兩個類的物件,當policeman類中警笛鳴響 alarm 方法執行時,觸發小偷逃跑 runaway ...

委託與事件

委託就是以方法做引數進行傳遞,它定義的是方法的框架,如果用這個委託,所宣告的方法就必須按照給定的引數及返滬型別進行處理。宣告委託的方式 delegate 返回值型別 委託型別名 引數 比如delegate void stringprocess string s 注意這裡的除了前面的delegate,...