程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 初學筆記(C#委托),

初學筆記(C#委托),

編輯:C#入門知識

初學筆記(C#委托),


1.委托的概述

      簡單說,委托就是把方法當作參數傳遞。

      委托(delegate)是一種動態調用方法的類型,它與類、接口和數組一樣,都屬於引用型。在C#中,可以申聲明委托類型、創建委托實例、把方法封裝在委托對象中。一個完整的飯否發具有方法名、返回值和參數列表,用來引用方法的委托也要求必須具有相同的返回值和參數列表。

     委托對象的本質代表了方法的引用(即內存地址),具有以下特點:

  • 與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定義。

  • 通過“+=”運算符將新創建的委托對象添加到委托調用列表zhong。還可以使用“-=”運算符來移除調用列表中的委托對象。

 


各位有沒有C語言的學習筆記或整理好的一些資料?

《c語言編程百例》,按照例子來學習比較容易上手,比直接看那些原理性的書籍強 //
是寫程序的機試還是理論的筆試?
機試推薦《程序設計引導及在線實踐》,大綱級書籍,具體鏈接:ai.pku.edu.cn/book/
理論的筆試肯定還是以譚浩強的為主,不過確實有些亂,你不妨買本它配套的習題之類的看看,譚浩強此書配套習題相當多,基本上都大同小異,根據手頭已有的資料為主來選吧,具體不推薦了。
 

C語言初學者,筆記本用什編程軟件比較好?

vc6.0 這個有學習版的 專業版的 企業版的
只是學的話 學習版的一般幾十兆的就行了 企業版的會有幾百兆很大
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved