雖然在裡面已經有很多關於c#委託和事件的文章,但是為了自己在學習的過程中,加深對委託的理解,我還是決定寫一下自己的心得體會。以備他日在回來複習。委託(delegate)是乙個類,但是這個類在宣告的時候跟普通的類有些不同。不帶class 關鍵字等。如下:
view code
static新建乙個委託物件,就相當於該物件是引數(方法)的指標應用,一般事件,都是針對於某一具體的委託的事件。乙個事件可以繫結多個方法,事件觸發後,繫結的方法會依次被執行。 在其他牛人的部落格內,有乙個很好的舉例。在windows程式設計中,在設計器中雙擊乙個按鈕button1.會自動生成該button的單擊響應函式: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()
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,...