<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C# 泛型

      Where T:class 泛型類型約束

      對于一個定義泛型類型為參數的函數,如果調用時傳入的對象為T對象或者為T的子類,在函數體內部如果需要使用T的屬性的方法時,我們可以給這個泛型增加約束;

      //父類子類的定義
      public class ProductEntryInfo
          {
              [Description("商品編號")]
              public int ProductSysNo { get; set; }  
             //more
          }
      
          public class ProductEntryInfoEx : ProductEntryInfo
          {
             
              [Description("成份")]
              public string Component { get; set; }  
             //more
          }
      
      //方法:
      private static string CreateFile<T>(List<T> list) where T:ProductEntryInfo
       { 
         int productSysNo =list[0].ProductSysNo 
       } 
      
      //調用:
      List<ProductEntryInfo> peList = new List<ProductEntryInfo>();
      string fileName = CreateFile( peList);
      
      List<ProductEntryInfoEx> checkListAll = new List<ProductEntryInfoEx>();   
      string fileNameEx = CreateFile(checkListAll);
      View Code

      這樣就可以實現上邊的CreateFile方法了

        這樣類型參數約束,.NET支持的類型參數約束有以下五種:

          where T : struct  T必須是一個結構類型
          where T : class   T必須是一個類(class)類型
          where T : new()    T必須要有一個無參構造函數
          where T : NameOfBaseClass | T必須繼承名為NameOfBaseClass的類
          where T : NameOfInterface | T必須實現名為NameOfInterface的接口

      分別提供不同類型的泛型約束。

      可以提供類似以下約束

      class MyClass<T, U>

          where T : class

          where U : struct

      { }

       

      泛型初始化

      default(T)

      default(T)可以得到該類型的默認值。

      C#在類初始化時,會給未顯示賦值的字段、屬性賦上默認值,但是值變量卻不會。值變量可以使用默認構造函數賦值,或者使用default(T)賦值。

      默認構造函數是通過 new 運算符來調用的,如下所示:

      1. int myInt = new int();

      default(T)如下所示:

      1. int myInt = default(int);

      以上語句同下列語句效果相同:

      1. int myInt = 0;

      請記住:在 C# 中不允許使用未初始化的變量

      之所以會用到default關鍵字,是因為需要在不知道類型參數為值類型還是引用類型的情況下,為對象實例賦初值。考慮以下代碼:

      class TestDefault<T>
          {
              public T foo()
              {
                  T t = null; //???
                  return t;
              }
          }

      如果我們用int型來綁定泛型參數,那么T就是int型,那么注釋的那一行就變成了 int t = null;顯然這是無意義的。為了解決這一問題,引入了default關鍵字:

      class TestDefault<T>
          {
              public T foo()
              {
                      return default(T);
              }
          }

       

       

       

       

      posted @ 2019-06-15 12:53  peterYong  閱讀(1921)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日本一区二区三区小视频| 正蓝旗| 免费人成年激情视频在线观看| 亚洲春色在线视频| 亚洲AV毛片一区二区三区| 久久精品一本到99热免费| 亚洲精品无amm毛片| 亚洲www永久成人网站| 国产在线精品一区二区三区直播| 成人免费在线播放av| 亚洲精品一区二区三区大桥未久| 亚洲国产日韩一区三区| 九九久久精品国产| 乱码午夜-极品国产内射| 国产av亚洲一区二区| 伊人久久大香线蕉aⅴ色| 泰州市| 亚洲在av极品无码天堂| 亚洲a∨国产av综合av| 国产精品亚韩精品无码a在线| 四虎成人在线观看免费| 亚洲熟女乱综合一区二区| 在线a级毛片免费视频| 性欧美vr高清极品| 婷婷综合缴情亚洲| 99久久免费只有精品国产| 吉木乃县| 色悠悠国产精品免费观看| 国产中文字幕精品喷潮| 中文区中文字幕免费看| 国产成人一卡2卡3卡四卡视频| 亚洲精品国产一区二区三| 无码中文字幕av免费放| 日本伊人色综合网| 中文字幕理伦午夜福利片| 国产无遮挡裸体免费视频在线观看| 亚洲熟妇丰满多毛xxxx| 亚洲精品国产免费av| 一本大道久久香蕉成人网| 欧美日本精品一本二本三区| 少妇午夜福利一区二区三区|