物件導向 (10)委託與事件

2021-06-20 13:29:50 字數 1270 閱讀 2484

委託是對函式的封裝,可以當做給方法的特徵制定乙個名稱。而事件則是委託的一種特殊形式,當發生有意義的事情時,事件物件處理通知過程。

委託是一種引用方法的型別。一旦為委託分配了方法,委託將與該方法具有完全相同的行為。委託物件用關鍵字delegate來宣告。而事件是說在發生其他類或物件關注的事情時,類或物件可通過事件通知它們。事件物件用event關鍵字宣告。

public delegate void catshouteventhandler();

public event catshouteventhandler catshout;
委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法,可以避免在程式中大量使用if-else(switch)語句,同時使得程式具有更好的可擴充套件性。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

}class cat

public delegate void catshouteventhandler(); //宣告委託catshouteventhandler

public event catshouteventhandler catshout; //宣告事件catshout,它的事件型別是委託catshouteventhandler

public void shout()

.",name);

if (catshout !=null)}}

class mouse

public void run() //逃跑的方法

快跑!",name );}}

}

執行結果為:

◆委託在開發中的作用:

啟動執行緒

通用類庫 事件

◆委託可以看成是一種資料型別,可以用於定義量,但它是一種特殊的資料型別,它所定義的變數能接收的數值只能是乙個函式,更確切的說,委託型別的變數可以接收的數值只能是乙個函式,委託的變數可以接收乙個函式的位址,類似c++語言的函式指標。

◆委託變數可看成是一種型別安全的函式指標,它只接收符合其要求的函式引用。

物件導向基礎 委託事件

當要把方法傳送給其他方法時,需要使用委託 委託和事件 委託和事件這兩個概念是完全配合的。委託僅僅是函式指標,那就是說,它能夠引用函式,通過傳遞位址的機制完成。委託是乙個類,當你對它例項化時,要提供乙個引用函式,將其作為它建構函式的引數 event出場了,它封裝了委託型別的變數,使得 在類的內部,不管...

物件導向 委託

概念 類似方法在記憶體中的首位址,但是它是型別安全的,明確知道方法的返回值型別和引數。可以這樣理解 對方法的乙個間接呼叫。定義了委託相當於定義了乙個類。格式 訪問修飾符 關鍵字 delegate 所指向方法的返回型別 委託的名字 形參 使用方式 委託的名字 委託物件 關鍵字 new 委託的名字 所指...

物件導向 委託

委託 委託 可以理解為是乙個函式的容器,委託指向哪個函式,就代表函式 委託的關鍵字是delegate 委託跟類class是平級的,需要寫在classs外面 main函式與普通函式不同是總的入口 委託相當是快捷方式 函式的容器,能存放引數型別相同的函式。定義 public delegate void ...