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