泛型介紹(C 程式設計)

2021-07-15 16:19:50 字數 1400 閱讀 6177

泛型類和泛型方法同時具備可重用性、型別安全和效率,這是非泛型類和非泛型方法無法具備的。 泛型通常用與集合以及作用於集合的方法一起使用。 .net framework 2.0 版類庫提供乙個新的命名空間 system.collections.generic,其中包含幾個新的基於泛型的集合類。 建議面向 .net framework 2.0 及更高版本的所有應用程式都使用新的泛型集合類,而不要使用舊的非泛型集合類如 arraylist。 有關更多資訊,請參見 .net framework 類庫中的泛型(c# 程式設計指南)。

當然,也可以建立自定義泛型型別和方法,以提供自己的通用解決方案,設計型別安全的高效模式。 下面的**示例演示乙個用於演示用途的簡單泛型鏈結列表類。 (大多數情況下,應使用 .net framework 類庫提供的 list 類,而不是自行建立類。)在通常使用具體型別來指示列表中儲存的項的型別的場合,可使用型別引數 t。 其使用方法如下:

在 addhead 方法中作為方法引數的型別。

在 node 巢狀類中作為公共方法 getnext 和 data 屬性的返回型別。

在巢狀類中作為私有成員資料的型別。

注意,t 可用於 node 巢狀類。 如果使用具體型別例項化 genericlist(例如,作為 genericlist),則所有的 t 都將被替換為 int。

// type parameter t in angle brackets

public

class genericlist

private node next;

public node next

set

}// t as private member data type.

private t data;

// t as return type of property.

public t data

set }}

private node head;

// constructor

public

genericlist()

// t as method parameter type:

public

void

addhead(t t)

public ienumeratorgetenumerator()

}}

下面的**示例演示客戶端**如何使用泛型 genericlist 類來建立整數列表。 只需更改型別引數,即可方便地修改下面的**示例,建立字串或任何其他自定義型別的列表:

class testgenericlist

foreach (int i in list)

system.console.writeline("\ndone");

}}

C 泛型介紹

在公共語言執行時和 c 語言的早期版本中,通用化是通過在型別與通用基型別 之間進行強制轉換來實現的,泛型提供了針對這種限制的解決方案。通過建立泛型類,您可以建立乙個在編譯時型別安全的集合。使用非泛型集合類的限制可以通過編寫一小段程式來演示,該程式使用 net framework 類庫中的 集合類。是...

c 泛型程式設計

對於兩個不同的概念a和b,如果概念a所需求的所有功能也是概念b所需求的功能,那麼就說概念b是概念a的子概念。例如 標準模板庫 standard template library,簡稱stl 提供了一些非常常用的資料結構和演算法 將函式物件作為演算法的引數而不是將函式所執行的運算作為演算法的一部分。使...

C 泛型程式設計

1.模板介紹 泛型程式設計 指的是直接應用 使用模板編寫好的函式模板或類模板庫程式 進行程式設計。在具體使用時,程式設計師只需向使用的庫函式或類模板提供型別或值即可。模板是泛型程式設計的基礎。比如使用標準模板庫中的容器 迭代器進行程式設計,就是泛型程式設計。模板函式 模板函式 強調的是函式,函式使用...