C 知識點總結 委託篇

2021-08-31 02:22:47 字數 2092 閱讀 2116

c#知識點總結1——委託篇

1.委託概念:

當要把方法傳送給其它方法時,需要使用委託。委託是一種特殊的引用型別,用於封裝命名方法(靜態或例項)或匿名方法。委託的作用相當於給方法簽名指定名稱。使用delegate關鍵字來宣告乙個委託引用型別,這種特殊的引用型別稱為委託。

2.定義委託:

告訴編譯器某個委託引用了某種型別的方法。

定義引用無引數的方法的委託

delegate string testdelegate1 ();//定義了乙個委託testdelegate1,引用了返回值型別為string的方法,此方法不帶任何引數。

定義引用有引數的方法的委託

delegate void testdelegate2 (string message);//定義了乙個委託testdelegate2,引用了返回值型別為void的方法,此方法帶乙個string引數。

3.例項化委託:

通過將委託與命名方法(靜態或例項)或匿名方法關聯,可以例項化委託。委託的例項仍稱為委託。

//定義委託testdelegate,代表帶乙個string引數的void返回型別方法

delegate void testdelegate(string name);

//定義類testclass,包含靜態命名方法和例項命名方法

public class testclass

public void nostaticmethod(string name)//例項命名方法

}

與命名方法關聯時委託在語法上總是帶有乙個引數的建構函式,這個引數就是委託引用的方法,這個方法必須匹配最初定義委託時的簽名,即方法返回值型別和引數序列必須都相匹配。

//與靜態命名方法關聯例項化委託

testdelegate delegate1 = new testdelegate(testclass. staticmethod);

//與例項命名方法關聯例項化委託

testclass testclass = new testclass();

testdelegate delegate2 = new testdelegate(testclass. nostaticmethod);

與匿名方法關聯時,匿名方法必須匹配最初定義委託時的簽名,即方法返回值型別和引數序列必須都相匹配。

//與匿名方法關聯例項化委託

testdelegate delegate3 = delegate(string name)

;

4.多播委託:

委託可以包含多個方法,這種委託稱為多播委託。多播委託只能引用返回值為void的方法。運算子有+、+=、-、-=,用來增加方法和刪除方法。

// 在delegate委託中增加nostaticmethod方法

testdelegate delegate = new testdelegate(testclass. staticmethod);

delegate += new testdelegate(testclass. nostaticmethod);

5.使用委託:

使用委託即通過委託的例項呼叫委託引用的方法,委託的例項名後面的括號包含的引數與委託引用的方法引數匹配。

delegate1(「xiexiaohua」);// 使用與靜態命名方法關聯的委託例項

delegate2(「xiexiaohua」);// 使用與例項命名方法關聯的委託例項

delegate3(「xiexiaohua」);// 使用與匿名方法關聯的委託例項

6.委託總結:

委託使用三步曲:定義->關聯->呼叫

//定義(定義委託)

delegate string mydelegate();

//關聯(通過關聯方法例項化委託)

mydelegate d = new mydelegate(myclass.mymethod);

//呼叫(通過委託的例項呼叫方法)

string ret = d();

C 委託知識點應用

1 宣告委託語法形式 關鍵字 delegate名字 委託名,必須標示符的命名規則。他可以有返回值,也可以引數。是不是就是乙個方法?他的本質上是乙個類。怎麼證明他就是乙個類呢?詳解 如上就宣告了乙個委託,名字是mydelegate。同時該委託具有返回值,以及引數。也就是說,宣告委託可以是多樣的,比如沒...

c 知識點總結

1 c 中判斷物件為空的幾種方式 1 先了解幾個與空型別相關的關鍵字和物件 null 關鍵字表示不引用任何物件的空引用,它是所有引用型別變數的預設值,在2.0版本之前也就只有引用變數型別可以為null,如 string a null 但在c 2.0版本之後,net也引入了可以為null的值型別,但變...

C 知識點總結

程式 資料結構 演算法.c語言是面向過程的,面向過程就是分析出解決問題的步驟,然後用函式將其實現,使用時依次呼叫.程式 物件 訊息.c 是物件導向的,c 物件導向是將構成問題的事物分解成各個物件,每個物件完成在解決整個問題中的行為.主要特點是類,封裝,繼承,多型等。物件導向的語言具有更好的可擴充套件...