C 委託和事件

2021-05-01 04:12:03 字數 814 閱讀 7610

什麼是委託?

委託和事件這兩個概念是完全配合的。委託僅僅是函式指標,那就是說,它能夠引用函式,通過傳遞位址的機制完成。委託是乙個類,當你對它例項化時,要提供乙個引用函式,將其作為它建構函式的引數

先看示例:

例中先申明乙個委託,

例如:public

delegate

void

somedelegate(

string

str, 

bool

b);在這裡,提及的簽名,就是說somedelegate 這個委託有string 和bool 型別的形參。

例中:對委託例項化時,要提供乙個引用函式,將其作為它建構函式的引數。

注意:被引用的這個函式必須和委託有相同的簽名。即:

class

callclass  is 

",str,b);} }

把somefunction

這個函式傳給somedelegate的建構函式,因為他們有相似的簽名(他們都有相同的形參型別和個數,並且相同資料型別);

somedelegate sd 

=new

somedelegate(callclass.somefunction);

sd 引用了 somefunction,也就是說,somefunction已被sd所登記註冊,如果你呼叫 sd,somefunction 這個函式也會被呼叫.

最後示例通過display方法用控制台列印出來:

static

void

display(somedelegate call, 

bool

value)

C 事件和委託

c 程式設計中的事件驅動是說應用程式的執行流程是由外界發生的事件確定的。也就是接受到任務再工作的模式。事件是乙個訊號,它告知應用程式有重要的事情發生。真正的執 況是,各個應用程式把負責不同功能的物件在其執行期間送入windows作業系統,讓這些物件等待windows產生事件。然後加以處理,windo...

C 委託和事件

要為類構造乙個事件,必須用 event 來宣告乙個 delegate 型的字段,如 puclic calss test 在建立類的例項後定義這個 load 事件 test m new test m.load new eventhandler m load void m load object sen...

C 委託和事件

在c 中使用乙個類時,分兩個階段。首先需要定義這個類,即告訴編譯器這個類由什麼欄位和方法組成。然後 除非只使用靜態方法 例項化類的乙個物件。使用委託時,也需要經過這兩個步驟。首先定義要使用的委託,對於委託,定義它就是告訴編譯器這種型別代表了那種型別的方法,然後建立該委託的乙個或多個例項。定義委託是從...