1.委托的概述
簡單說,委托就是把方法當作參數傳遞。
委托(delegate)是一種動態調用方法的類型,它與類、接口和數組一樣,都屬於引用型。在C#中,可以申聲明委托類型、創建委托實例、把方法封裝在委托對象中。一個完整的飯否發具有方法名、返回值和參數列表,用來引用方法的委托也要求必須具有相同的返回值和參數列表。
委托對象的本質代表了方法的引用(即內存地址),具有以下特點:
2.委托的聲明、實例化與使用
2.1委托的聲明
委托是一種引用型的數據類型,在C#中使用關鍵字delegate聲明,一般形式如下:
[訪問修飾符] delegate 返回值類型 委托名([參數列表])
2.2 委托的實例化
委托是一種特殊的數據類型,因此必須實例化之後才能用來調用方法。一般形式如下:
委托類型 委托變量名=new 委托型構造函數(委托要引用的方法)
2.3 使用委托
實例化之後,就可以通過委托對象調用它所引用的方法。使用委托對象調用所有所有的方法時,必須保證參數的類型、個數、順序和方法聲明匹配。
2.4使用匿名方法
允許將代碼塊作為參數傳遞,以避免單獨定義方法,使用匿名方法創建委托對象的一般形式如下:
委托類型 委托變量名=delegate([參數列表]){//代碼塊}
3.多路廣播與委托組合
實際上,C#允許使用一個委托對象調用多個方法,當向委托添加更多的指向其他方法的引用時,這些引用將被存儲在委托的調用列表裡,這種委托叫多路廣播委托。C#的所有委托都是隱式的多路廣播委托。向一個委托的調用列表添加多個方法引用,可以通過該委托一次性調用所有的方法,這個過程稱為多路廣播。
實現多路廣播的方法有兩種:
例如:
假設有一委托Calculate
Calculate a=new Calculate(Add);
Calculate b= new Calculate(Mulipty);
a=a+b;
由於一個委托對象只能返回一個值,且只返回調用列表中最後一個方法的返回值,因此為了避免混淆,建議在使用多路廣播時,每個方法均用void定義。
《c語言編程百例》,按照例子來學習比較容易上手,比直接看那些原理性的書籍強 //
是寫程序的機試還是理論的筆試?
機試推薦《程序設計引導及在線實踐》,大綱級書籍,具體鏈接:ai.pku.edu.cn/book/
理論的筆試肯定還是以譚浩強的為主,不過確實有些亂,你不妨買本它配套的習題之類的看看,譚浩強此書配套習題相當多,基本上都大同小異,根據手頭已有的資料為主來選吧,具體不推薦了。
vc6.0 這個有學習版的 專業版的 企業版的
只是學的話 學習版的一般幾十兆的就行了 企業版的會有幾百兆很大