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);
//與匿名方法關聯例項化委託4.多播委託:testdelegate delegate3 = delegate(string name)
;
委託可以包含多個方法,這種委託稱為多播委託。多播委託只能引用返回值為void的方法。運算子有+、+=、-、-=,用來增加方法和刪除方法。
// 在delegate委託中增加nostaticmethod方法5.使用委託:testdelegate delegate = new testdelegate(testclass. staticmethod);
delegate += new testdelegate(testclass. nostaticmethod);
使用委託即通過委託的例項呼叫委託引用的方法,委託的例項名後面的括號包含的引數與委託引用的方法引數匹配。
delegate1(「xiexiaohua」);// 使用與靜態命名方法關聯的委託例項6.委託總結:delegate2(「xiexiaohua」);// 使用與例項命名方法關聯的委託例項
delegate3(「xiexiaohua」);// 使用與匿名方法關聯的委託例項
委託使用三步曲:定義->關聯->呼叫
//定義(定義委託)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 物件導向是將構成問題的事物分解成各個物件,每個物件完成在解決整個問題中的行為.主要特點是類,封裝,繼承,多型等。物件導向的語言具有更好的可擴充套件...