IEquatable<T> 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義通用的方法,實值類型或類別會實作這個方法,以建立特定類型的方法來判斷執行個體是否相等。
generic <typename T>
public interface class IEquatable
public interface IEquatable<T>
type IEquatable<'T> = interface
Public Interface IEquatable(Of T)
類型參數
- T
要比較之物件的類型。
- 衍生
範例
請參閱 方法的 IEquatable<T>.Equals 範例。
備註
這個介面是由值可以等等 (的類型實作,例如數值和字串類別) 。 實值型別或類別會實作 方法, Equals 以建立適合判斷實例相等的類型特定方法。
注意
介面 IComparable<T> 會 CompareTo 定義 方法,以決定實作型別實例的排序次序。 介面 IEquatable<T> 會 Equals 定義 方法,以決定實作型別實例的相等性。
這類 IEquatable<T> 泛型集合物件會使用 介面,例如 Dictionary<TKey,TValue> 、 List<T> 和 LinkedList<T> 測試 、 IndexOf
、 LastIndexOf
和 Remove
這類方法 Contains
是否相等。 它應該針對可能儲存在泛型集合中的任何物件實作。
給實施者的注意事項
將 介面的 IEquatable<T> type 參數取代為實作這個介面的類型。
如果您實作 IEquatable<T> ,則也應該覆寫 的 Equals(Object) 基類實作, GetHashCode() 使其行為與 方法的行為 Equals(T) 一致。 如果您覆寫 Equals(Object) ,則會在呼叫 類別上的靜態 Equals(System.Object, System.Object)
方法時呼叫覆寫的實作。 此外,您應該多載 op_Equality
和 op_Inequality
運算子。 這可確保所有相等測試都會傳回一致的結果。
如需覆寫 Equals(Object) 的資訊,請參閱 Equals(Object) 。
針對實值型別,您應該一律實 IEquatable<T> 作 和 覆寫 Equals(Object) ,以提升效能。 Equals(Object) 方塊實值型別,並依賴反映來比較兩個相等值。 實作 Equals(T) 和 的 Equals(Object) 覆寫都應該傳回一致的結果。
如果您實作 IEquatable<T> ,則也應該實 IComparable<T> 作型別的實例是否可以排序或排序。 如果您的類型實作 IComparable<T> ,您幾乎一律也會實 IEquatable<T> 作 。
請注意,有一些設計可支援順序關聯,但相等可能會與排序關聯不同。 請考慮依 Person
字母順序排序的類別。 同名的兩個人會排序相同,但不是相同的人。
方法
Equals(T) |
指出目前的物件是否等於另一個相同類型的物件。 |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應