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

首頁 > 編程 > C# > 正文

深入解析C#編程中泛型委托的使用

2020-01-24 01:16:56
字體:
來源:轉載
供稿:網友

在看泛型委托之前還需要先了解委托的概念。
這里講的委托有兩種類型一種是有返回值的,另一種是事件委托。

  //定義有返回值的委托   public delegate string GenricDelegate<T, S>(T title, S author);  //定義事件委托。  public delegate void GenricDelegateEnent<E,P>(E Name,P Address);  public class GenericDelegateClass<V,F>  {    //聲明委托    public GenricDelegate<V, F> GdeleValue;    //聲明事件委托    public event GenricDelegateEnent<V, F> GdEvent = null;    public string GetValues(V title, F author)    {      //調用委托      return GdeleValue(title, author);    }    public GenericDelegateClass()    {    }    public void InvokeEvent(V name, F address)    {      if (GdEvent != null)      {        //調用委托        GdEvent(name, address);      }    }  }

上面我們定義及調用了泛型委托,接下來就來梆定委托。

    private void btnDelegate_Click(object sender, EventArgs e)    {      GenericDelegateClass<string, string> gd = new GenericDelegateClass<string, string>();      //將DelegateReturn事件梆定給GdeleValue      gd.GdeleValue = new GenricDelegate<string, string>(DelegateReturn);      //將GenericEvent事件梆定給GdEvent      gd.GdEvent += new GenricDelegateEnent<string, string>(GenericEvent<string,string>);    }    public string DelegateReturn<T,S>(T title,S author)    {      return title.ToString() + author;    }    private void GenericEvent<V, F>(V name, F address)    {      //    }

在這里我們看到我在梆定DelegateReturn的時候并沒有帶泛型參數。在這里的泛型參數其實是沒什么意義的。因為他的類型取決于調用委托的方法的類型。也就是在前面那段代碼中InvokeEvent方法的類型,這里的DelegateReturn要用泛型方法是可以隨時跟InvokeEvent的參數類型保持一至。這樣梆定后我們再來調用gd.GetValues("my generic post","fastyou");這樣調用的其實就是DelegateReturn的方法,這就是委托的好處了,同樣調用gd.InvokeEvent("my generic post","fastyou");就是GenericEvent方法。

委托 可以定義自己的類型參數。引用泛型委托的代碼可以指定類型參數以創建已關閉的構造類型,就像實例化泛型類或調用泛型方法一樣,如下例所示:

public delegate void Del<T>(T item);public static void Notify(int i) { }Del<int> m1 = new Del<int>(Notify);

C# 2.0 版具有稱為方法組轉換的新功能,此功能適用于具體委托類型和泛型委托類型,并使您可以使用如下簡化的語法寫入上一行:

Del<int> m2 = Notify;
在泛型類內部定義的委托使用泛型類類型參數的方式可以與類方法所使用的方式相同。

class Stack<T>{  T[] items;  int index;  public delegate void StackDelegate(T[] items);}

引用委托的代碼必須指定包含類的類型變量,如下所示:

private static void DoWork(float[] items) { }public static void TestStack(){  Stack<float> s = new Stack<float>();  Stack<float>.StackDelegate d = DoWork;}

根據典型設計模式定義事件時,泛型委托尤其有用,因為發送方參數可以為強類型,不再需要強制轉換成 Object,或反向強制轉換。

delegate void StackEventHandler<T, U>(T sender, U eventArgs);class Stack<T>{  public class StackEventArgs : System.EventArgs { }  public event StackEventHandler<Stack<T>, StackEventArgs> stackEvent;  protected virtual void OnStackChanged(StackEventArgs a)  {    stackEvent(this, a);  }}class SampleClass{  public void HandleStackChange<T>(Stack<T> stack, Stack<T>.StackEventArgs args) { }}public static void Test(){  Stack<double> s = new Stack<double>();  SampleClass o = new SampleClass();  s.stackEvent += o.HandleStackChange;}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区二区三区成人在线视频精品| 成人免费看片视频| 国产精欧美一区二区三区| 欧美中文字幕第一页| 国内精品久久久久久影视8| 亚洲系列中文字幕| 亚洲人av在线影院| 欧美性xxxx极品hd欧美风情| 久久视频免费在线播放| 欧美午夜电影在线| 日本国产高清不卡| 久久精品国产成人精品| 国产成人综合精品在线| 欧美亚洲成人免费| 亚洲人成在线观看网站高清| 亚洲风情亚aⅴ在线发布| 中文字幕在线亚洲| 欧美激情a在线| 久久伊人免费视频| 国产精品久久久久久久久久小说| 欧美有码在线观看视频| 国产成人拍精品视频午夜网站| 亚洲国产欧美一区二区三区同亚洲| 亚洲综合在线中文字幕| 欧美亚洲第一区| 欧美日韩国产激情| 成人黄色av网站| 91福利视频在线观看| 欧美成人免费视频| 亚洲综合中文字幕在线观看| 亚洲缚视频在线观看| 91高清视频在线免费观看| 亚洲电影免费观看| 欧美成人精品三级在线观看| 国产精品久久久久aaaa九色| 一区二区三区 在线观看视| 亚洲午夜精品久久久久久性色| 久久综合伊人77777| 亚洲欧美日韩国产中文专区| 日韩精品在线观看视频| 国产精品免费一区豆花| 97在线免费观看视频| 亚洲一区二区免费在线| 成人a免费视频| 日韩精品视频免费| 亚洲第一精品夜夜躁人人躁| 国产精品视频自拍| 国产精品久久久av久久久| 成人黄色片网站| 成人高清视频观看www| 久久视频在线免费观看| 亚洲欧洲一区二区三区久久| 亚洲人成网在线播放| 91sao在线观看国产| 91经典在线视频| 亚洲最大av网站| 亚洲视频日韩精品| 成人97在线观看视频| 国产福利精品视频| 国产亚洲美女精品久久久| 久久69精品久久久久久久电影好| 日韩成人在线视频网站| 欧美日韩国产限制| 2018国产精品视频| 国产女精品视频网站免费| 91超碰caoporn97人人| 欧美成人中文字幕在线| 久色乳综合思思在线视频| 黑丝美女久久久| 亚洲视频在线观看视频| 日韩在线不卡视频| 欧美成人自拍视频| 日韩久久精品电影| 成人伊人精品色xxxx视频| 日本国产高清不卡| 2018国产精品视频| 国产91ⅴ在线精品免费观看| 在线播放国产一区中文字幕剧情欧美| 成人有码在线视频| 久久成人精品电影| 亚洲欧美制服综合另类| 色综合影院在线| 日韩免费在线电影| 国产狼人综合免费视频| 久久天天躁狠狠躁老女人| 国产精品男人爽免费视频1| 国产日韩欧美一二三区| 中文字幕日韩有码| 日韩欧美aⅴ综合网站发布| 国产午夜精品全部视频播放| 日本最新高清不卡中文字幕| 国产精品视频999| 国产精品久久久久久久久久小说| 美女av一区二区| 亚洲欧美国产一区二区三区| 欧美性xxxx在线播放| 精品伊人久久97| 中文字幕亚洲综合久久| 91精品国产91久久久久久不卡| 中文字幕日韩av综合精品| xxxx欧美18另类的高清| 亚洲精品国产成人| 欧美在线免费视频| 亚洲午夜未满十八勿入免费观看全集| 日本精品免费观看| 亚洲第一天堂无码专区| 久久久国产在线视频| 中文字幕亚洲在线| 日韩精品小视频| 亚洲美女动态图120秒| 国产精品电影一区| 亚洲精品国精品久久99热一| 国产亚洲精品成人av久久ww| 日韩av中文字幕在线播放| 国产69精品久久久久99| 亚洲国产精品电影| 欧美与欧洲交xxxx免费观看| 国产精品久久久久久久av电影| 最近2019好看的中文字幕免费| 国产91精品网站| 欧美成人四级hd版| 欧美xxxwww| 久久久久久亚洲| 中文国产成人精品| 国产精品视频一区二区三区四| 亚洲片av在线| 国模精品系列视频| 欧美交受高潮1| 欧美性受xxxx黑人猛交| 国产91色在线| 国产精品久久久久久久久久久久| 亚洲福利视频二区| 最新的欧美黄色| 97精品国产97久久久久久免费| 国产精品影片在线观看| 精品免费在线观看| 亚洲国产精久久久久久久| 亚洲第一网站免费视频| 欧美大片在线免费观看| 欧美成人在线网站| 亚洲天堂av在线免费观看| 中国日韩欧美久久久久久久久| 国产成人精品一区二区在线| 久久久精品亚洲| 日韩中文在线不卡| 亚洲精品白浆高清久久久久久| 国产高清在线不卡| 久热精品视频在线免费观看| 久久这里有精品| 国产91色在线播放| 欧美不卡视频一区发布| 成人网址在线观看| 亚洲国产精品一区二区久| 综合网日日天干夜夜久久| 美日韩在线视频| 色爱av美腿丝袜综合粉嫩av| 久久夜色撩人精品| 欧美成人一区二区三区电影| 色噜噜狠狠狠综合曰曰曰88av| 中文字幕日韩欧美在线视频| 97视频免费在线看| 国产日韩精品电影| 国产色视频一区| 亚洲一二在线观看|