日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

泛型笔记

發布時間:2023/12/1 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 泛型笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
所謂泛型,即通過參數化類型來實現在同一份代碼上操作多種數據類型。(類型的 多態) 是一種編程范式,它利用“參數化類型”講類型抽象化,從而實現更為靈活的復用。 1,可重用行 2,類型安全(在編譯期間發現問題,而不是在運行的時候) 3,效率更高(避免裝箱,拆箱的操作) 類型參數的命名準則: 1 務必使用描述性名稱命名泛型類型參數 2 考慮使用T作為具有單個字母類型參數的類型參數名 3 務必將“T”作為前綴 CLASS C{} CLASS D:C{} CLASS E:C{} CLASS F:C{} CLASS G:C{} //非法 因為非泛型類型繼承了未被實例化得泛型類 c#除可單獨聲明泛型類型(包括類和結構)外,也可在基類中包含泛型類型得聲明 。但基類如果是泛型類,它的類型參數要么已實例化,要么來源于子類(同樣是泛 型類型)聲明的類型參數。 泛型類型的成員 Class C{ PUBLIC V f1; PUBLIC D f2; PUBLIC C(V x){ This.f1=x; } } 泛型類型的成員可以使用泛型類型聲明中的類型參數。但類型參數如果沒有任何約 束,則只能在該類型上使用從SYSTEM.OJBECT繼承的共有成員。 泛型接口 interface ILIST{ T[] GetElements(): } interface IDictionary{ void Add(K key,V value) } class List:IList,IDictionary{ public T[] GetElements(){return null;} public void Add(int index,T value){} } 泛型接口的類型參數要目已實例化,要么來源于實現類聲明的類型參數 泛型方法的聲明與調用 public calss Finder{ public static int Find(T[] items,T item){ for(int i=0;i(new int[]{1,2,3,4,5,6,8,9}, 6); 泛型方法的重載 class Myclass{ void F1(T[] a,int i); //不可以構成重載方法 void F1(U[] a,int i); void F2(int x); //可以構成重載方法 void F2(int x); void F3(T t) where T:A; //不可以構成重載方法 void F3(T t) where T:B; } 泛型方法的重寫 abstract class Base{ public abstract T F(T t,U u) where U:T; public abstract T G(T t) where T:IComparable; } class Derived:Base{ //合法的重寫,約束被默認繼承 public override X F(X x,Y y){} //非法的重寫,指定任何約束都是多余的 public override T G(T t) where T:Icomparable{} } 泛型約束 1。對“所有泛型類型或泛型方法的類型參數”的任何假定,都要基于“顯示的約束”, 以維護類型安全 2。“顯示約束”由WHERE字句表達,分為4種 基類約束 接口約束 構造器約束 值類型/引用類型約束

轉載于:https://www.cnblogs.com/bloodycool/archive/2006/09/05/495161.html

總結

以上是生活随笔為你收集整理的泛型笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。