委託的使用主要是為了解決不知道什麼時候可能觸發的這種事件而用的。
我們舉個例子,假如你開了一家餐廳,除了日常的餐飲業務之外,還會有**訂餐等業務。**訂餐的業務就可以委託給兒子,這個過程就叫做委託。
兒子接完**可以告訴你,也可以不告訴你,這就看這個委託的型別。
一、普通委託(比如我們要執行一兩個數的加法運算)
//第一步,定義委託 (接**這個事件)
public
delegate
intadddel
(int a ,
int b)
;//第二步,寫真正的執行加法的方法 (定義乙個會接**的兒子)
public
intfuncadd
(int a ,
int b)
//第三步,將方法繫結到委託,通常乙個委託可以繫結多個方法,這就是我們所說的多播委託 (告訴兒子接**這個事情)
adddel myadddel =
newadddel
(fancadd)
;//第四步,開始 (兒子開始等**)
myadddel(3
,4);
//或者myadddel.invoke(3,4);
二、泛型委託
系統中其實已經內建了兩個定義好的委託,我們可以省略掉普通委託中的第一步
這兩個系統委託的就是func和action ,二者區別是func引數列表t,最後乙個是返回值,而action是沒有任何返回值的(引數列表t,最多16個輸入函式,可以是任何型別)
1.func委託
#region
func我的匿名委託 =
delegate(int a , int b);
#endregion
2.action委託
如果我們執行乙個不需要返回結果的委託,則使用action ,比如我們讓說一句hello world
#region
action我的匿名委託2 =
delegate(string s);
我的匿名委託2. invoke("hello world");
#endregion
3.使用lambda表示式簡化委託寫法
func我的lambda表示式委託=
(int a, int b) => a+b;
action我的lambda表示式委託2 =
(s) =>consloe.writeline(s);
委託的學習
委託 什麼是委託,怎麼去定義乙個委託,還有委託的呼叫。概念 委託的使用 lambda 擴充套件方法 方法傳方法 匿名方法 委託 是使用者定義的一種資料型別 其型別是用來存放方法指標的,就是委託包含的是方法的位址。定義乙個委託 思考以前我們定義乙個類的時候 有乙個關鍵字 還有就是類的名稱,而類裡面包含...
vb的委託學習
委託和事件 委託,這個詞一聽被邪乎。幾年前我還以為和律師什麼的有關係。可事實上 委託 就是system.delegate 類。它是乙個類,這就意味著它是乙個資料型別,而且是乙個引用型別。它能夠引用物件的方法 例項方法 和類的方法 靜態方法 在vb 裡的shared 方法 使用委託可以概括為三步 宣告...
C 委託的學習
看完 這一篇文章,大致了解了委託的概念,在此進行總結 首先 滿足乙個需求,根據客戶需要用不同語言版本輸出早上好,如果用列舉 會很複雜,這裡用委託會顯得很簡潔 委託 namespace 委託實現測試 private static void chinesegreeting string name 委託的...