泛型介面

更新:2007 年 11 月

本主題將提供泛型介面的概觀,該介面提供各種泛型型別系列的一般功能。

泛型介面

泛型介面為非泛型介面提供了型別安全的對應項目,以便進行排序及相等比較,以及提供泛型集合型別所共用的功能。

相等和排序比較

System 命名空間中,System.IComparable<T>System.IEquatable<T> 泛型介面與其非泛型的對應項目一樣,分別定義了排序比較和相等比較的方法。型別會實作這些介面來提供執行這類比較的能力。

System.Collections.Generic 命名空間中,IComparer<T>IEqualityComparer<T> 泛型介面提供了一個方式,針對不會實作 System.IComparable<T>System.IEquatable<T> 泛型介面的型別定義排序或相等比較,並且針對會實作泛型介面的型別提供重新定義這些關聯性的方法。許多泛型集合類別的方法和建構函式都會使用這些介面。例如,您可以將泛型 IComparer<T> 物件傳遞給 SortedDictionary<TKey, TValue> 類別的建構函式,以針對不會實作泛型 System.IComparable<T> 的型別指定排序次序。有 Array.Sort 泛型靜態方法和 List<T>.Sort 執行個體方法的多載可透過泛型 IComparer<T> 實作來排序陣列和清單。

Comparer<T>EqualityComparer<T> 泛型類別可為 IComparer<T>IEqualityComparer<T> 泛型介面的實作提供基底類別,也可透過其各自的 Comparer<T>.DefaultEqualityComparer<T>.Default 屬性來提供預設的排序和相等比較。

集合功能

ICollection<T> 泛型介面為泛型集合型別的基本介面。它可提供加入、移除、複製和列舉元素的基本功能;ICollection<T> 繼承自泛型 IEnumerable<T> 和非泛型 IEnumerable 二者。

IList<T> 泛型介面利用有索引的擷取之方法來擴充 ICollection<T> 泛型介面。

IDictionary<TKey, TValue> 泛型介面利用有索引鍵的擷取之方法來擴充 ICollection<T> 泛型介面。.NET Framework 基底類別庫中的泛型字典型別也會實作非泛型 IDictionary 介面。

IEnumerable<T> 泛型介面提供了泛型列舉值結構;泛型列舉值所實作的 IEnumerator<T> 泛型介面會繼承非泛型 IEnumerator 介面,而且不依賴型別參數 T 的 MoveNextReset 成員只會出現在非泛型介面上。這表示,非泛型介面的任何消費者也可以使用此泛型介面。

請參閱

概念

.NET Framework 中的泛型概觀

.NET Framework 中的泛型集合

管理陣列和清單的泛型委派

泛型的優點和限制

參考

System.Collections.Generic

System.Collections.ObjectModel

其他資源

.NET Framework 中的泛型