C 委託知識點應用

2021-10-23 14:43:26 字數 1864 閱讀 3433

1、宣告委託語法形式:

關鍵字:delegate名字:委託名,必須標示符的命名規則。他可以有返回值,也可以引數。==?是不是就是乙個方法?

他的本質上是乙個類。怎麼證明他就是乙個類呢?詳解:如上就宣告了乙個委託,名字是mydelegate。同時該委託具有返回值,以及引數。也就是說,宣告委託可以是多樣的,比如沒有返回值,或者是沒有引數,或者是具有多個引數。

2、例項化委託

一旦宣告了委託型別,委託物件必須使用new關鍵字來建立,且與乙個特定的方法有關。

當建立委託時,傳遞到new語句的引數就像方法呼叫一樣書寫,但是不帶有引數。

引數是什麼??引數就是方法名,並且不帶括號和括號內的引數

在建立例項的時候,建構函式裡接受的引數就是乙個方法名;但是這裡並沒有像我們之前所學習的方法一樣,直接就呼叫了。什麼時候呼叫這個方法,或者這個方法什麼時候執行??

3、多播委託委託

物件可使用"+「運算子進行合併。乙個合併委託呼叫它所合併的兩個委託。只有相同型別的委託可被合併。」-"運算子可用於從合併的委託中移除元件委託。使用委託的這個有用的特點,您可以建立乙個委託被呼叫時要呼叫的方法的呼叫列表。這被稱為委託的多播(multicasting),也叫組播

「+=」 : 對應 combine()

「-=」:對應 remove()

詳解:在移除時應注意兩點,第一是否滿足是否是同乙個方法,第二是否滿足target值是否一致。

執行**檢視委託的呼叫結果:

using system;

using system.collections.generic;

using system.text;

--");}

public

void

show()

--");}

);nom2.

invoke

("用委託的方式呼叫方法",2

);//lambda

--");}

);nom3.

invoke

("用委託的方式呼叫方法",3

);}// lambda => 的 左側 引數可以省略引數型別,編譯器會自動推斷引數型別

--");}

);nom4.

invoke

("用委託的方式呼叫方法",4

);}//直接方法體

--");}

);nom4.

invoke

("用委託的方式呼叫方法",5

);}// t=>1 就是 t=1

//action 是無返回值的委託

// 不用定義委託,因為。net已經內建定義了委託

action<

string

> action =

(n)=

>")

;};// func必須帶有返回值,

func<

string

> func =()

=>

"ad";}

}public

delegate

void

noreturnmoreparammethod

(string name,

int i)

;}

using system;

using system.collections.generic;

using system.text;}}

}

C 知識點總結 委託篇

c 知識點總結1 委託篇 1 委託概念 當要把方法傳送給其它方法時,需要使用委託。委託是一種特殊的引用型別,用於封裝命名方法 靜態或例項 或匿名方法。委託的作用相當於給方法簽名指定名稱。使用delegate關鍵字來宣告乙個委託引用型別,這種特殊的引用型別稱為委託。2 定義委託 告訴編譯器某個委託引用...

Elasticsearch應用必備知識點

本文介紹elasticsearch實際應用中常用的一些知識內容,包括資料型別介紹 動態模板等。elasticsearch支援多種資料型別,常見核心型別包括 string text和keyword numberic scaled float 需要指定scaling factor為100,2.34,儲存...

Elasticsearch應用必備知識點

本文介紹elasticsearch實際應用中常用的一些知識內容,包括資料型別介紹 動態模板等。elasticsearch支援多種資料型別,常見核心型別包括 string text和keyword numberic scaled float 需要指定scaling factor為100,2.34,儲存...