欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C#語言知識點(diǎn)整理-委托-創(chuàng)新互聯(lián)

引言:

成都創(chuàng)新互聯(lián)公司主營固陽網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,固陽h5小程序開發(fā)搭建,固陽網(wǎng)站營銷推廣歡迎固陽等地區(qū)企業(yè)咨詢

   在我看來委托一直是一種比較特別的類型,剛開始學(xué)的時(shí)候總是朦朦朧朧的不知所云。有必要從頭來過,記個(gè)筆記。該篇從委托的定義,委托的優(yōu)點(diǎn),如何理解委托以及委托的協(xié)變和逆變 依次展開。

目錄:

一、委托的定義:... 1

二、委托的優(yōu)點(diǎn):... 1

三、如何理解委托:... 1

四、委托中的協(xié)變與逆變:... 3

五、總結(jié)。... 5

六、參考:... 5

一、委托的定義:

   委托是一種定義方法簽名的類型,可以與具有兼容簽名的任何方法關(guān)聯(lián)。(這里的簽名包含返回值)

二、委托的優(yōu)點(diǎn):

1) 委托類似于 C++ 函數(shù)指針,但它們是類型安全的。

2) 委托允許將方法作為參數(shù)進(jìn)行傳遞。

3) 委托可用于定義回調(diào)方法。

4) 委托可以鏈接在一起;例如,可以對一個(gè)事件調(diào)用多個(gè)方法。

5) 方法不必與委托簽名完全匹配。(C#4.0)

6) C# 2.0 引入的 匿名方法 和C# 3.0引入的 Lambda 表達(dá)式都可編譯為委托類型,此類方法允許將代碼塊作為參數(shù)傳遞,以代替單獨(dú)定義的方法。

三、如何理解委托:

   有如委托的字面理解:將自己的事務(wù)囑托他人代為處理 ,delegate個(gè)人理解是 代理方法執(zhí)行方法的內(nèi)容。

   組合多路廣播委托:+ 運(yùn)算符將它們分配給一個(gè)要成為多路廣播委托的委托實(shí)例。- 運(yùn)算符可用來從組合的委托移除組件委托。只有相同類型的委托才可以組合。

委托綜合示例:

1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: 
6: namespace CSharp.Delegate
7: {
8:     //聲明委托
9:     public delegate void Del(string message);
10: 
11:     class Program
12:     {
13:         // Create a method for a delegate.
14:         public static void DelegateMethod(string message)
15:         {
16:             System.Console.WriteLine(message);
17:         }
18: 
19:         //定義回調(diào)方法
20:         public static void MethodWithCallback(string message, Del callback)
21:         {
22:             callback(message);
23:         }
24: 
25:         public static void Hello(string s)
26:         {
27:             System.Console.WriteLine("  Hello, {0}!", s);
28:         }
29: 
30:         public static void Goodbye(string s)
31:         {
32:             System.Console.WriteLine("  Goodbye, {0}!", s);
33:         }
34: 
35:         static void Main(string[] args)
36:         {
37: 
38:             //new方法實(shí)例化委托,將方法作為參數(shù)進(jìn)行傳遞
39:             Del handler = new Del(DelegateMethod);
40:             handler("向大家問個(gè)好吧。");
41:             MethodWithCallback("大家好!", handler);
42: 
43:             //匿名方法來實(shí)例化委托
44:             Del anotherhandler = DelegateMethod;
45:             anotherhandler("Hello World");
46:             MethodWithCallback("I am coming!", anotherhandler);
47: 
48:             //“Lambda 表達(dá)式”是一個(gè)匿名函數(shù),可以其表達(dá)式分配給委托類型
49:             Del lamDel = (string s) =>
50:             {
51:                 Console.WriteLine(s);
52:             };
53:             lamDel("我是Lambda匿名委托!");
54: 
55:             //
56:             //多路組合委托
57:             //
58:             //Hello,Goodbye,DelegateMethod 組合委托到d
59:             Del d;
60:             d = Hello;
61:             d += Goodbye;
62:             d += new Del(DelegateMethod);
63: 
64:             d("David");
65: 
66:             //移除委托DelegateMethod
67:             d -= DelegateMethod;
68:             d("David");
69: 
70:         }
71:     }
72: }

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

文章名稱:C#語言知識點(diǎn)整理-委托-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://chinadenli.net/article36/hohsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站做網(wǎng)站、Google網(wǎng)站設(shè)計(jì)公司、網(wǎng)站設(shè)計(jì)自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)