共用方式為


IEquatable<T> 介面

定義

定義通用的方法,實值類型或類別會實作這個方法,以建立特定類型的方法來判斷執行個體是否相等。

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> 在這類方法中測試是否相等時,例如 ContainsIndexOfLastIndexOfRemove。 它應該針對任何可能儲存在泛型集合中的物件實作。

給實施者的注意事項

將介面的類型 IEquatable<T> 參數取代為實作這個介面的類型。

如果您實作 IEquatable<T>,則也應該覆寫 的基類實 Equals(Object) 作, GetHashCode() 使其行為與 Equals(T) 方法的行為一致。 如果您覆寫 Equals(Object),則會在呼叫 類別上的靜態 Equals(System.Object, System.Object) 方法時呼叫覆寫的實作。 此外,您應該多載 op_Equalityop_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)

指出目前的物件是否等於另一個相同類型的物件。

適用於

另請參閱