一、委託
委託為安全的函式指標,提供了程式**指定方法的機制;思想在於將工作委派給其他特定的型別、元件、方法或程式集,委託的使用者可以理解為工作的分派者,在通常情況下使用者清楚地知道哪些工作需要執行、執行的結果又是什麼,但是他不會親自地去做這些工作,而是恰當地把這些工作分派出去。
二、事件
事件是一種使物件或類能夠提供通知的成員,客戶端可以通過提供事件處理程式為相應的事件新增可執行**。
三、事件和委託有神馬聯絡
1、委託本質是乙個型別,而事件本質是乙個特殊的委託型別的例項,事件提供了兩個供訂閱事件和取消訂閱的方法:add_event和remove_event,其本質都是基於委託鏈來實現。
2、eventhandler是.net框架中提供的一種標準的事件模式,它是乙個特殊的泛型委託型別;
[serializable]public
delegate
void eventhandler(object sender, teventargs e);
3、訂閱事件的本質是呼叫delegate的combine方法將事件處理方法繫結到委託鏈中。
l_0000: ldarg.0l_0001: ldfld
class [mscorlib]system.eventhandler`1
consoleeventdemo.consolemanager::consoleevent
l_0006: stloc.
0l_0007: ldloc.
0l_0008: stloc.
1l_0009: ldloc.
1l_000a: ldarg.
1l_000b: call
class [mscorlib]system.delegate [mscorlib]system.delegate::combine(class [mscorlib]system.delegate, class
[mscorlib]system.delegate)
l_0010: castclass [mscorlib]system.eventhandler`
1l_0015: stloc.
2l_0016: ldarg.
0l_0017: ldflda
class [mscorlib]system.eventhandler`1
consoleeventdemo.consolemanager::consoleevent
摘抄自:
c 委託事件
1,什麼是委託 委託是什麼?從生活理解就像是你是乙個c 程式設計師,你對c 並不了解,當需要進行c 分析的時候你委託給你的一位懂c 的同事幫你來完成 在c 中,委託的作用是這樣描述的 委託就像乙個函式的指標,在程式執行時可以使用它們來呼叫不同的函式。簡單點說,委託能夠引用函式,通過傳遞位址的機制完成...
初識委託 事件
這個是我剛入行第乙個感興趣的知識點,翻了翻不知道什麼時候記的筆記,覺得有必要把自己學的知識在梳理一遍,有一些點比當時更清晰 在這裡,先將一位大牛的部落格貼出來,有興趣的可以去看看,很詳細的介紹了委託與事件,讀了幾遍受益匪淺 c 中的委託和事件 c 中的委託和事件 續 本文例項是在vs2013下實現的...
C 委託事件
一 委託 委託類似於函式指標,但函式指標只能引用靜態方法,而委託既能引用靜態方法,也能引用例項方法。委託使用分三步 1 委託宣告。2 委託例項化。3 委託呼叫。例程一 程式 using system namespace 委託 private int add int num1,int num2 例中,...