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> 在這類方法中測試是否相等時,例如 Contains
、 IndexOf
LastIndexOf
和 Remove
。 它應該針對任何可能儲存在泛型集合中的物件實作。
給實施者的注意事項
將介面的類型 IEquatable<T> 參數取代為實作這個介面的類型。
如果您實作 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> 作類型實例是否可以排序或排序。 如果您的類型實作 ,您幾乎一律也會實IEquatable<T>作 IComparable<T>。
請注意,有一些類型支援順序關聯性的設計,但相等可能與排序關聯性不同。 Person
請考慮依字母順序排序的類別。 具有相同名稱的兩個人會排序相同,但不是相同的人。
方法
Equals(T) |
指出目前的物件是否等於另一個相同類型的物件。 |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應