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) |
指出目前的物件是否等於另一個相同類型的物件。 |