c 2 0泛型學習 一 C 教程

2021-04-17 02:39:04 字數 2527 閱讀 9592

1.未使用泛型的stack類

1using system;

2**ublic class stack

410    public stack(int size)

11   

15    public void push(object item)

16   

23    public object pop()

24   

30        else

31       

35    }

36}37

2.使用泛型的類

1using system;

2**ublic class stack

412    public stack(int size)

13   

17    public void push(t item)

18   

25    public t pop()

26   

32        else

33       

38    }

39}40

41public class stack1: stack

4245

下為pdf文件,我感覺挺好的,很簡單,我聽的懂就是好的

/clingingboy/one.pdf

多個泛型

1class node

212    public node(k key, t item, nodenextnode)

13   

18}泛型別名

1using list = linkedlist;

泛型約束

1public class linkedlistwhere k : icomparable

28    public void addhead(k key, t item)

9   

1314    t find(k key)

15   

24        return current.item;

25    }

2627}

281using system;

2using system.collections.generic;

3using system.text;

45namespace vs2005demo1610

11    inte***ce imybaseinte***ce

12   

1516    internal class genericclasswhere t : mybaseclassgeneric,imybaseinte***ce

17   

2021    class gclasswhere k : mybaseclassgeneric,imybaseinte***ce,new() where t : k

22   

2526    class guclasswhere t : k where k : mybaseclassgeneric,imybaseinte***ce, new()

27   

3031

32    不能將引用/值型別約束與基類約束一起使用,因為基類約束涉及到類#region 不能將引用/值型別約束與基類約束一起使用,因為基類約束涉及到類

33   

34    //class awhere t : struct,class

35    //{}

36   

37    #endregion

3839    不能使用結構和預設建構函式約束,因為預設建構函式約束也涉及到類#region 不能使用結構和預設建構函式約束,因為預設建構函式約束也涉及到類

4041    //class awhere t : struct,new()

42    //{}

4344    #endregion

4546    雖然您可以使用類和預設建構函式約束,但這樣做沒有任何價值#region 雖然您可以使用類和預設建構函式約束,但這樣做沒有任何價值

4748    class awhere t : new()

49   

5253    class typea

54   

56    }

5758    class testa

59   

6263    #endregion

6465    可以將引用/值型別約束與介面約束組合起來,前提是引用/值型別約束出現在約束列表的開頭#region 可以將引用/值型別約束與介面約束組合起來,前提是引用/值型別約束出現在約束列表的開頭

66   

67    class sclasswhere k : struct, imybaseinte***ce

68   

6970    class cclasswhere k : class, imybaseinte***ce

71   

72   

73    #endregion

74}75

c 2 0泛型學習 一

1using system 23public class stack 410 public stack int size 11 15 public void push object item 16 23 public object pop 24 30 else 31 35 36 37 2.使用泛型的...

C 2 0泛型程式設計基礎

最顯著的一點就是它引數化了型別,把型別作為引數抽象出來,從而使我們在實際的運用當中能夠更好的實現 的重複利用,同時它提供了更強的型別安全,更高的效率,不過在約束方面,它只支援顯示的約束,這樣在靈活性方面就顯得不是那麼好了。我覺得它之所以能夠提供更高的效率是因為泛型在例項化的時候採用了 on dema...

C 2 0之細說泛型

在c 1中,arraylist總是會給人帶來困擾,因為它的引數型別是object,這就讓開發者無法把握集合中都有哪些型別的資料。如果對string型別的資料進行算術操作那自然會報錯,但是遺憾的是在編譯期不會給你任何的提示 c 2中引入的泛型極其耀眼,甚至有些人會因為泛型而忽略c 2中其它新加入的特性...