泛型方法 | 非泛型方法 | 差別 |
int IComparable<T>.CompareTo(T otherObj) | int IComparable.CompareTo(object otherObj) | 在泛型版本中是強類型化的 |
bool IComparable<T>.Equals(T otherObj) | N/A | 在非泛型接口中不存在,可以改用繼承的object.Equals() |
int IComparer<T>.Compare(T objectA,T objectB) | int IComparer.Compare(object objectA,object objectB) | 在泛型版本中是強類型化的 |
bool IComparer<T>.Equals(T otherA,T objectB) | N/A | 在非泛型接口中不存在,可以改用繼承的object.Equals() |
int IComparer<T>.GetHashCode(T objectA) | N/A | 在非泛型接口中不存在,可以改用繼承的object.GetHashCode() |
對要排序的類型提供IComparable<T>接口,或者提供IComparer<T>接口,就可以對List<T>進行排序。還可以提供泛型委托作為排序方法。例:
Comparison<T>:這個委托類型用于排序方法,其傳回類型和參數如下:
int method(T objectA,T objectB)
Predicate<T>:這個委托類型用于搜尋方法,其傳回類型和參數如下:
bool method(T targetObject)