委託與事件

2021-07-28 18:07:59 字數 1163 閱讀 2821

前面已經具體說明了委託,這裡重點解析事件。(關於委託和lambda:委託與lambda表示式)

一.委託與事件的關係:

為了方便操作委託,體統提供了三種泛型委託:

匿名方法:

事件處理:

二.事件的定義:

事件(event)的宣告的語法如下:

public  event  委託型別  事件名;

例子:

//定義乙個委託

public delegate voiddelegaterun(); //定義乙個事件 public eventdelegaterun eventrun;

事件的使用方法:

class

program

static

void evt_evthandler(object

sender, eventargs e)

static

void

evt_evtact()

}public

class

evthandler

}

事件的使用方法

三.使用事件需要的步驟:

建立委託

將建立的委託與特定事件關聯(事件發生時,我們要執行的方法的時候,我們需要和這個委託有相同的簽名)

編寫事件處理程式

利用編寫的c#事件處理程式生成乙個委託例項

把這個委託例項新增到產生事件物件的事件列表中去,這個過程又叫訂閱事件

四.訂閱事件:

定義好事件後,與事件有關的人會訂閱事件,只有訂閱事件的物件才會收到發生事件的通知,沒有訂閱該事件的物件則不會收到通知。

訂閱事件的語法如下:

事件名+=new 委託名(方法名);

五.引發事件:

public event mydel eventrun;

publicvoidbegin()

委託與事件

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

委託與事件

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

委託與事件

委託與事件 一 委託 delegate 1 委託是一種可以把引用儲存為函式的型別。2 在定義了委託後,就可以宣告該委託型別的變數,接著把這個變數初始化為與委託有相同返回型別和引數類別的函式引用,之後,就可以使用委託變數呼叫這個函式,就像該變數是乙個函式一樣。如 double multiply dou...