亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#中委托用法實例分析

2020-01-24 01:52:39
字體:
來源:轉載
供稿:網友

本文實例講述了C#中委托用法。分享給大家供大家參考。具體分析如下:

Delegate委托,在.NET中應用的非常廣泛。會涉及到Lambda表達式,事件,匿名方法等。

那么何為委托?

通俗的來講,委托除了必須指定delegate關鍵字和沒有方法實體之外,和指定方法沒有更多區別。你可以當它是一個占位符,比如你在寫代碼的時候并不知道你將要處理的是什么。你只需要知道你將要引入的參數類型和輸出類型是什么并定義它即可。這就是書本上所傳達的方法簽名必須相同的意思。

下面我們來定義一個基本的委托:

public class Test {  //定義委托  public delegate void D_Math(int a, int b);  public void Add(int a, int b)  {   Console.WriteLine("Add方法結果:{0}", a + b);  }  public void Cut(int a, int b)  {   Console.WriteLine("Cut方法結果:{0}", a - b);  } } [TestClass] public class UnitTest1 {  [TestMethod]  public void TestMethod1()  {   Test t = new Test();   Test.D_Math D = new Test.D_Math(t.Add);  //委托實例化,也可Test.D_Math D =t.Add;   D += t.Cut;  //委托可以以隊列方式執行多個方法,  //以+=運算符或者-=來增加或者取消隊列中的方法   D(5, 6);  } }

以上看出來委托實用的地方了嗎?即委托可以執行任何引入參數類型相同且返回類型相同的方法,甚至可以執行簽名相同的方法隊列。

那么我們的方法簽名(即引入參數和輸出參數)真的必須與委托完全一致嗎?答:不是的,我們不能忽略協變與逆變。

我們這里簡單介紹一下協變與逆變的知識。

“協變”是指能夠使用與原始指定的派生類型相比,派生程度更大的類型。
“逆變”則是指能夠使用派生程度更小的類型。
那么,我們的委托也是接受協變與逆變的。
意思是,如果定義一個delegate,那么不僅僅簽名完全相同的方法可以賦值給delegate變量。
如果一個方法的參數表符合delegate聲明,但返回的類型是(delegate聲明返回類型)的派生類,那也可以將這個方法賦值給這個delegate變量。
如果一個方法的返回類型符合delegate的聲明,但參數是(delegate聲明參數類型)的祖先類,那也可以將這個方法賦值給這個delegate變量。
如果一個方法的參數和返回類型都符合上面兩行的假設,那也可以將這個方法賦值給這個delegate變量。

以下以兩個簡單示例解釋協變與逆變:

協變:

public class A { } public class B:A { }//B繼承自A public class Test {   //定義委托   public delegate A D_Math();   public B Add()   {    return new B();    }   public A Add2()   {    return new A();   } } [TestClass] public class UnitTest1 {   [TestMethod]   public void TestMethod1()   {    Test.D_Math d = new Test.D_Math(new Test().Add);   //委托返回A,而Add方法返回B,此為協變。   } }

逆變:

public class A { } public class B:A { }//B繼承自A public class Test {   //定義委托   public delegate void D_Math(B b);   public void Add(B b)   {    }   public void Add2(A a)   {    } } [TestClass] public class UnitTest1 {   [TestMethod]   public void TestMethod1()   {    Test.D_Math d = new Test.D_Math(new Test().Add2);   //委托引入參數B,而Add方法參數為A類型,此為協逆變。   } }

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
性欧美激情精品| 日韩电影中文字幕一区| 91久久久久久久一区二区| 最近日韩中文字幕中文| 日韩在线免费视频| 欧美一级黑人aaaaaaa做受| 欧美精品中文字幕一区| 中文字幕亚洲一区二区三区五十路| 欧美刺激性大交免费视频| 日韩欧美国产黄色| 亚洲精品国产精品久久清纯直播| 欧美精品免费在线观看| 国内精品一区二区三区| 91精品久久久久久久久久入口| 国产精品精品国产| 91社影院在线观看| 丰满岳妇乱一区二区三区| 韩国三级日本三级少妇99| 成人黄色在线播放| 日韩高清电影免费观看完整| 一区二区亚洲欧洲国产日韩| 国产精品久久久久久久久免费| 久久精品色欧美aⅴ一区二区| 亚洲91精品在线| 国产91|九色| 精品日本美女福利在线观看| 成人网在线视频| 久久天天躁狠狠躁夜夜躁2014| 久久久久久久97| 久久久久久91香蕉国产| 国产精品免费视频久久久| 正在播放欧美视频| 久久久国产精品视频| 欧美午夜视频在线观看| 日本一区二区三区四区视频| 亚洲第一免费播放区| 国产一区欧美二区三区| 久久频这里精品99香蕉| 日韩少妇与小伙激情| 国产精品青青在线观看爽香蕉| 正在播放亚洲1区| 欧美成在线观看| 亚洲aaaaaa| 亚洲精品aⅴ中文字幕乱码| 在线观看不卡av| 在线观看欧美日韩| 精品国产电影一区| 成人在线免费观看视视频| 欧美国产高跟鞋裸体秀xxxhd| 欧美激情aaaa| 日韩**中文字幕毛片| 久久精品人人做人人爽| 91青草视频久久| 国产一区二区三区在线| 日韩有码片在线观看| 久热精品视频在线观看| 日韩欧美国产视频| www.久久色.com| 久久久国产精品亚洲一区| 久热精品视频在线免费观看| 夜夜嗨av色综合久久久综合网| 91高清视频在线免费观看| 国产精品99一区| 国产精品流白浆视频| 亚洲美女av在线| 国产精品美女无圣光视频| 国产精品高清网站| 亲子乱一区二区三区电影| 精品久久久久久中文字幕一区奶水| 精品亚洲aⅴ在线观看| 国产精品揄拍一区二区| 2020欧美日韩在线视频| 亚洲精品电影网| 韩剧1988免费观看全集| 色黄久久久久久| 国产激情久久久| 日本精品一区二区三区在线播放视频| 国产亚洲欧美aaaa| 亚洲国产精品久久久久久| 久久久久久久av| 一区二区在线免费视频| 亚洲男女性事视频| 91po在线观看91精品国产性色| 狠狠做深爱婷婷久久综合一区| 欧美一级片一区| 欧美一区在线直播| 色www亚洲国产张柏芝| 国产精品白嫩初高中害羞小美女| 国产一区二区三区直播精品电影| 国产精品99免视看9| 性欧美在线看片a免费观看| 国产精品久久久久久亚洲调教| 亚洲精品一区二区三区婷婷月| 国产精品扒开腿做爽爽爽男男| 久久国产视频网站| 久久久国产影院| 欧美插天视频在线播放| 亚洲精品视频免费| 亚洲www永久成人夜色| 91亚洲一区精品| 热久久视久久精品18亚洲精品| 亚洲高清久久久久久| 国产精品国语对白| 国产精品xxxxx| 精品欧美一区二区三区| 蜜臀久久99精品久久久无需会员| 一区二区欧美亚洲| 亚洲精品国产精品乱码不99按摩| 国产香蕉97碰碰久久人人| 久久在精品线影院精品国产| 欧美精品久久久久久久久| 成人国产精品av| 国产精品99久久久久久人| 欧美插天视频在线播放| 国产精品视频大全| 热re91久久精品国99热蜜臀| 亚洲**2019国产| 国产精品九九九| 亚洲精品日韩久久久| 欧美电影免费观看| 欧美激情视频网址| 精品亚洲国产成av人片传媒| 91久久在线观看| 日本精品中文字幕| 久久国产天堂福利天堂| 欧美在线视频网站| 韩国三级电影久久久久久| 精品美女永久免费视频| 久久久久久国产免费| 日韩高清欧美高清| 亚洲一级黄色片| 亚洲欧洲偷拍精品| 欧美人成在线视频| 少妇久久久久久| 欧美亚洲激情视频| 97视频国产在线| 久久人人爽人人爽人人片av高请| 国产精品偷伦免费视频观看的| 欧美日韩免费观看中文| 国产日韩在线看片| 亚洲精品理论电影| 91精品在线播放| 亚洲午夜精品久久久久久性色| 在线性视频日韩欧美| 久热精品视频在线观看| 国产一区二区视频在线观看| 日韩激情视频在线播放| 精品久久久久久久久国产字幕| 亚洲综合一区二区不卡| 97色伦亚洲国产| 97高清免费视频| 97国产真实伦对白精彩视频8| 欧美性生活大片免费观看网址| 91久久精品国产91性色| 日韩美女在线看| 亚洲男人的天堂在线| 日韩高清有码在线| 亚洲国产欧美一区二区三区同亚洲| 午夜欧美不卡精品aaaaa| 亚洲一区av在线播放| 视频在线一区二区| 国产精品亚洲综合天堂夜夜| 精品久久久久久久久中文字幕| 亚洲永久在线观看|