c 2 0的新功能 一 泛型類

2021-04-12 17:18:52 字數 1283 閱讀 6468

一、定義

public class stack

t m_items;

public void push(t item)

public t pop()

public stack()

二、使用

stactstack = new stack()();

stack.push(1);

stack.push(2);

//stack.pust("sss");會出錯

int number = stack.pop();

三、好處

1、效能高

2、型別安全

3、可重用

四、在編譯泛型類時只是乙個佔位符,在例項化時會替換為特定的型別。

五、結構體中使用泛型

public struct point

t           x;

t           y;

使用:point point;

point.x =1; point.y =1;

六、使用預設值,值型別是0,引用型別是null

t  t = default(t);

七、使用多個也是可以的 public class nodes

另外乙個使用nodes的類linkedlist也必須使用泛型。public class linkedlist

使用別名using list = linkedlist;就可以使用list list = new list()進行例項化了。

八、泛型約束

1、派生約束,指定引數必須從什麼類和介面派生。

比如在查詢時要比較,必須有icomparable約束。

public class nodeswhere k:icomparable,另外也可以用where k:icomparable,防止裝箱。

具體語法是:public class class名稱《引數1,引數2,...> where 引數1:類,介面1,介面2  where 引數2:...

2、建構函式約束,表示引數必須有建構函式。

public class nodeswhere t:new()

其中nodes中使用new t()時必須有建構函式約束。

3、引用/值約束

public class nodeswhere t:struct //值型別

public class nodeswhere t:class//引用型別

以上的約束的可以共存,但是有些不能共存。太多了,反正會出錯,就不寫了。

順序是: where 引數1:引用/值約束,派生約束,建構函式約束。

C 2 0新增功能02 泛型

c 語言和公共語言執行時 clr 的 2.0 版本中新增了泛型。泛型將型別引數的概念引入 net framework,這樣就可以設計具有以下特徵的類和方法 在客戶端 宣告並初始化這些類和方法之前,這些類和方法會延遲指定乙個或多個型別。泛型定義 泛型是為所儲存或使用的乙個或多個型別具有佔位符 型別形參...

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泛型介紹之簡單泛型類。

下面是乙個簡單的泛型類。public class genericclass f,t public genericclass f name,t age public f name set public t age set 這是乙個最簡單的泛型類了。f,t就是就是型別引數。可以是乙個物件,也可以是某種資...