亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > .net泛型通用函數(shù)的特殊問題的解決方法

.net泛型通用函數(shù)的特殊問題的解決方法

熱門標(biāo)簽:玉林市機器人外呼系統(tǒng)哪家好 南陽外呼系統(tǒng)定制化 蘋果手機凱立德地圖標(biāo)注 申請400電話手續(xù) 百度ai地圖標(biāo)注 電話機器人軟件銷售工作 同安公安400電話怎么申請流程 合肥電銷外呼系統(tǒng)哪家公司做的好 預(yù)測式外呼系統(tǒng)使用說明

  自從2.0版本的net framework推出之后泛型(Generic)得到了廣泛好評。它不必像object類型一樣性能上因為“拆箱”或者“裝箱”得到損失,同時在編譯語法檢測階段就可以實時檢測出傳入或者傳出的類型是否符合特定條件。

  但“金無赤足,人無完人”——在我們享受這些幸福編程的同時,泛型自身類型的不確定也帶來了一個顯著的問題——無法進行運算符重載。譬如現(xiàn)在我要寫一個函數(shù)(一個通用的選擇排序算法,使用泛型T),該怎么辦呢?如果你簡單使用這樣的代碼(C#如下):

復(fù)制代碼 代碼如下:

//從小到大,改進型選擇排序算法

public static void SortT>(T[] array)
{
     bool flag = false; //標(biāo)記是否已經(jīng)排序

     for(int i=0;iarray.Length-1;++i)
     {
          flag = false;  //每次假定都已經(jīng)排序,無須再排序

          for(int j=i+1;iarray.Length;++j)
          {
               if(array[i]>array[j])
                {
                      int temp = array[i];
                      array[i]=array[j];
                      array[j]=templ
                      flag = true; //已經(jīng)排序
                }
          }
           if(!flag)
           {
               break;
           }
     }
}


  編譯之后很快發(fā)現(xiàn)提示“運算符‘>'無法作用于T”一類的提示。

  為什么呢?我們知道,凡是可以進行大于、小于比較的類型肯定都定義了運算符重載。一般類必須為此定義方可進行比較,不然大于號或者小于號(或者其它運算符)無法知道如何比較而發(fā)生錯誤。那么泛型因為事先都不知道什么類型?編譯器檢查器自然無法推斷你運行時動態(tài)傳入的這個類型一定保證是實現(xiàn)了運算符重載,嚴(yán)格語法檢查情況下就自然報錯。

  怎么辦呢?強制規(guī)定泛型T必須實現(xiàn)比較器(強制T必須實現(xiàn)IComparable,或者類似接口)。

復(fù)制代碼 代碼如下:

public static void SortT>(T[] array)where T:IComparable
{
     bool flag = false; //標(biāo)記是否已經(jīng)排序

     for(int i=0;iarray.Length-1;++i)
     {
          flag = false;  //每次假定都已經(jīng)排序,無須再排序

          for(int j=i+1;iarray.Length;++j)
          {
               if(array[i].Compare(array[j])>0)
                {
                      int temp = array[i];
                      array[i]=array[j];
                      array[j]=templ
                      flag = true; //已經(jīng)排序
                }
          }
           if(!flag)
           {
               break;
           }
     }
}


  一旦對泛型進行約束,那么泛型必然是實現(xiàn)該接口的類,必然擁有此方法(Compare方法返回結(jié)果int類型,如果大于0表示前面一個數(shù)字大于后面一個)。

  當(dāng)然,微軟類庫中有一個Comparer靜態(tài)類,已經(jīng)實現(xiàn)了此接口可以直接進行比較(http://msdn.microsoft.com/zh-cn/library/system.collections.comparer.comparer.aspx),因此我們也可以選擇直接使用這個靜態(tài)類中的Compare方法得到結(jié)果。

  【例2】實現(xiàn)一個通用的“+”——即如果傳入的字符串,則自動按照字符串進行字符拼接;如果傳入的是其它基本類型(int,double等),則返回相加結(jié)果。

  微軟沒有為“+”預(yù)定義接口,因此無法直接使用接口的方式來做(當(dāng)然你自己強制定義一個,也可以如法炮制)。我們現(xiàn)在換一個方法——使用表達式樹(C#代碼如下):

復(fù)制代碼 代碼如下:

public static T AddT>(T a, T b)
        {
            Expression left = Expression.Constant(a);
            Expression right = Expression.Constant(b);

            Type t = typeof(T);

            Expression value;

            if (t == typeof(string))
            {
                value = Expression.Constant(a.ToString()+b.ToString());
            }
            else
            {
                value = Expression.Add(left, right);
            }

            ExpressionFuncT>> addExp = Expression.LambdaFuncT>>(value);

            FuncT> addFunc = addExp.Compile();

            return addFunc();
        }


  動態(tài)判斷T是string還是其它基本類型,然后調(diào)用不同的方法組合成為表達式樹,動態(tài)編譯成為一個Func表達式,返回結(jié)果即可。

您可能感興趣的文章:
  • asp.net實現(xiàn)利用反射,泛型,靜態(tài)方法快速獲取表單值到Model的方法
  • 詳解.NET 4.0中的泛型協(xié)變(covariant)和反變(contravariant)
  • .NET基礎(chǔ)之自定義泛型分析
  • .NET開發(fā)基礎(chǔ):從簡單的例子理解泛型 分享
  • 使用.NET中的Action及Func泛型委托深入剖析
  • .NET CORE動態(tài)調(diào)用泛型方法詳解

標(biāo)簽:揚州 南京 海南 南昌 嘉興 臺州 淄博 南京

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《.net泛型通用函數(shù)的特殊問題的解決方法》,本文關(guān)鍵詞  .net,泛型,通用,函數(shù),的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《.net泛型通用函數(shù)的特殊問題的解決方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于.net泛型通用函數(shù)的特殊問題的解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    四虎久久精品国产| 美女免费黄网站| 免费一级生活片| 青青久久国产成人免费网站| 青草国产在线观看| 一级女性大黄生活片免费| 欧美激情一区二区三区视频 | 国产一区二区精品久久91| 日韩欧美一及在线播放| 麻豆午夜视频| 欧美爱爱网| 日本在线www| 日韩欧美一二三区| 国产视频一区二区在线观看| 国产精品免费精品自在线观看| 午夜在线影院| 欧美日本免费| 美女被草网站| 久久国产精品自线拍免费| 欧美激情一区二区三区视频 | 欧美a级大片| 国产一级生活片| 国产视频一区二区在线观看| 九九免费高清在线观看视频| 久久国产精品永久免费网站| 99色视频在线| 国产成人精品综合久久久| 99久久精品国产免费| 免费国产在线观看不卡| 黄色免费网站在线| 日韩专区亚洲综合久久| 天天做日日爱| 可以免费看毛片的网站| 免费国产在线观看| 午夜欧美成人久久久久久| 精品在线观看一区| 九九久久99| 国产成人精品综合久久久| 成人免费网站视频ww| 精品视频一区二区三区| 久久精品免视看国产明星| 黄视频网站免费| 欧美国产日韩久久久| 国产亚洲男人的天堂在线观看| 欧美激情伊人| 九九精品影院| 色综合久久天天综线观看 | 国产视频在线免费观看| 精品在线视频播放| a级毛片免费观看网站| 国产精品1024在线永久免费| 国产成人精品影视| 欧美激情一区二区三区在线播放| 国产极品精频在线观看| 999久久久免费精品国产牛牛| 久久精品免视看国产明星| 97视频免费在线观看| 九九干| 日本在线www| 成人a级高清视频在线观看| 精品毛片视频| 二级片在线观看| 天天做日日干| 免费国产一级特黄aa大片在线| 国产一区二区精品尤物| 久草免费在线观看| 四虎影视久久| 国产网站免费观看| 亚洲精品中文一区不卡| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚欧成人乱码一区二区| 国产福利免费观看| 日韩av成人| 青青久久国产成人免费网站| 成人影视在线观看| 国产一区免费在线观看| 精品视频免费在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 夜夜操网| 国产网站在线| 国产成a人片在线观看视频| 日本在线不卡免费视频一区| 国产高清在线精品一区a| 亚欧成人乱码一区二区| 国产一区二区精品久久91| 国产一级生活片| 精品国产香蕉在线播出| 日本免费看视频| 99久久网站| 四虎影视久久| 亚欧乱色一区二区三区| 国产亚洲免费观看| 国产不卡高清| 免费的黄色小视频| 四虎影视库国产精品一区| 亚洲女人国产香蕉久久精品| 国产不卡精品一区二区三区| 黄视频网站在线看| 精品国产一区二区三区免费 | 日韩专区在线播放| 色综合久久天天综线观看| 欧美激情一区二区三区视频| 国产一区国产二区国产三区| 尤物视频网站在线| 日韩中文字幕在线播放| 日韩中文字幕在线观看视频| 亚洲精品久久久中文字| 在线观看成人网| 亚洲 欧美 成人日韩| 久草免费在线视频| 色综合久久天天综合绕观看| 999精品在线| 精品久久久久久中文字幕一区| 亚洲精品影院| 在线观看成人网| 国产极品精频在线观看| 四虎影视久久| 999久久狠狠免费精品| 天天做日日爱| 久久精品人人做人人爽97| | 你懂的国产精品| 久久精品免视看国产明星| 国产精品免费久久| 天天做日日爱夜夜爽| 久久久久久久久综合影视网| 99色视频| 精品毛片视频| 九九免费精品视频| 色综合久久手机在线| 久久精品免视看国产成人2021| 国产一区二区精品久久91| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产视频在线免费观看| 成人免费观看的视频黄页| 国产成人啪精品| 久久精品免视看国产明星| 亚洲第一页色| 免费毛片播放| 黄色短视频网站| 一级女性全黄生活片免费| 国产91精品系列在线观看| 国产综合成人观看在线| 欧美激情一区二区三区视频| 欧美日本免费| 香蕉视频久久| 欧美激情在线精品video| 国产伦精品一区二区三区无广告 | 国产麻豆精品高清在线播放| 久久99中文字幕久久| 欧美激情一区二区三区中文字幕| 亚洲精品中文一区不卡| 国产一级强片在线观看| 久久久久久久男人的天堂| 一级片片| 成人免费观看男女羞羞视频| 日本特黄一级| 久久国产一久久高清| 国产亚洲男人的天堂在线观看| 欧美大片a一级毛片视频| 久久精品欧美一区二区| 91麻豆爱豆果冻天美星空| | 欧美另类videosbestsex视频| 九九热国产视频| 欧美a免费| 黄视频网站在线观看| 午夜家庭影院| 国产成人女人在线视频观看| 99热精品在线| 日韩av东京社区男人的天堂| 成人高清视频在线观看| 中文字幕一区二区三区精彩视频| 九九久久国产精品| 黄视频网站在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚洲 激情| 午夜久久网| 免费的黄色小视频| 国产综合成人观看在线| 欧美a免费| 精品国产一区二区三区免费 | 日韩在线观看视频黄| 黄色福利| 国产麻豆精品视频| 91麻豆精品国产高清在线 | 精品视频在线观看免费| 成人免费网站久久久| 精品久久久久久中文| 天堂网中文在线| 国产成人欧美一区二区三区的| 91麻豆精品国产自产在线| 毛片电影网| 久久久成人影院| 欧美激情在线精品video| 亚欧视频在线| 欧美1区2区3区| 国产福利免费视频| 国产视频一区二区在线观看| 91麻豆精品国产高清在线 |