|
廢話
我本來以為委托很簡單,本來只想簡簡單單的說說委托背后的東西,委托的使用方法。原本只想解釋一下那句:委托是面向?qū)ο蟮?、類型安全的函?shù)指針。可沒想到最后惹出一堆的事情來,越惹越多,罪過,罪過。本文后面一部分是我在一邊用SOS探索一邊記錄的,寫的非常糟糕,希望您的慧眼能發(fā)現(xiàn)一些有價(jià)值的東西,那我就感到無比的榮幸了。
委托前世與今生
大家可能還記得,在C/C++里,我們可以在一個(gè)函數(shù)里實(shí)現(xiàn)一個(gè)算法的骨架,然后在這個(gè)函數(shù)的參數(shù)里放一個(gè)“鉤子”,使用的時(shí)候,利用這個(gè)“鉤子”注入一個(gè)函數(shù),注入的函數(shù)實(shí)現(xiàn)不同算法的不同部分,這樣就可以達(dá)到算法骨架重用的目的。而這里所謂的“鉤子”就是“函數(shù)指針”。這個(gè)功能很強(qiáng)大啊,但是函數(shù)指針卻有它的劣勢:不是類型安全的、只能“鉤”一個(gè)函數(shù)。大家可能都知道微軟對委托的描述:委托是一種面向?qū)ο蟮模愋桶踩?,可以多播的函?shù)指針。要理解這句話,我們先來看看用C#的關(guān)鍵字delegate聲明的一個(gè)委托到底是什么樣的東西:
1: namespace Yuyijq.DotNET.Chapter2
2: {
3: public delegate void MyDelegate(int para);
4: }
NET技術(shù):探索.Net中的委托,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。