IEquatable<T> Interface

Definition

Definuje zobecněnou metodu, kterou typ hodnoty nebo třída implementuje k vytvoření metody specifické pro typ pro určení rovnosti instancí.Defines a generalized method that a value type or class implements to create a type-specific method for determining equality of instances.

generic <typename T>
public interface class IEquatable
public interface IEquatable<T>
type IEquatable<'T> = interface
Public Interface IEquatable(Of T)

Type Parameters

T

Typ objektů, které mají být porovnány.The type of objects to compare.

Derived

Examples

Podívejte se na příklad metody IEquatable<T>.Equals.See the example for the IEquatable<T>.Equals method.

Remarks

Toto rozhraní je implementováno pomocí typů, jejichž hodnoty mohou být rovny (například číselné a řetězcové třídy).This interface is implemented by types whose values can be equated (for example, the numeric and string classes). Typ hodnoty nebo třída implementuje metodu Equals pro vytvoření metody specifické pro typ vhodný k určení rovnosti instancí.A value type or class implements the Equals method to create a type-specific method suitable for determining equality of instances.

Note

Rozhraní IComparable<T> definuje metodu CompareTo, která určuje pořadí řazení instancí implementující typu.The IComparable<T> interface defines the CompareTo method, which determines the sort order of instances of the implementing type. Rozhraní IEquatable<T> definuje metodu Equals, která určuje rovnost instancí implementující typu.The IEquatable<T> interface defines the Equals method, which determines the equality of instances of the implementing type.

Rozhraní IEquatable<T> používá obecné objekty kolekce, například Dictionary<TKey,TValue>, List<T>a LinkedList<T> při testování rovnosti v těchto metodách jako Contains, IndexOf, LastIndexOfa Remove.The IEquatable<T> interface is used by generic collection objects such as Dictionary<TKey,TValue>, List<T>, and LinkedList<T> when testing for equality in such methods as Contains, IndexOf, LastIndexOf, and Remove. Měla by být implementována pro libovolný objekt, který může být uložen v obecné kolekci.It should be implemented for any object that might be stored in a generic collection.

Notes to Implementers

Nahraďte parametr typu rozhraní IEquatable<T> typem, který implementuje toto rozhraní.Replace the type parameter of the IEquatable<T> interface with the type that is implementing this interface. Pokud implementujete IEquatable<T>, měli byste také přepsat implementace základní třídy Equals(Object) a GetHashCode() tak, aby jejich chování bylo konzistentní s metodou Equals(T).If you implement IEquatable<T>, you should also override the base class implementations of Equals(Object) and GetHashCode() so that their behavior is consistent with that of the Equals(T) method. Pokud přepíšete Equals(Object), přepsaná implementace se také volá v volání statické metody Equals(System.Object, System.Object) třídy.If you do override Equals(Object), your overridden implementation is also called in calls to the static Equals(System.Object, System.Object) method on your class. Kromě toho byste měli přetížit operátory op_Equality a op_Inequality.In addition, you should overload the op_Equality and op_Inequality operators. Tím zajistíte, že všechny testy rovnosti vrátí konzistentní výsledky.This ensures that all tests for equality return consistent results.

Informace o přepsání Equals(Object)naleznete v článku Equals(Object).For information on overriding Equals(Object), see the Equals(Object) article.

Pro typ hodnoty byste měli vždycky implementovat IEquatable<T> a přepsat Equals(Object) pro lepší výkon.For a value type, you should always implement IEquatable<T> and override Equals(Object) for better performance. typy hodnot Equals(Object) polí a spoléhá na reflexi pro porovnání dvou hodnot pro rovnost.Equals(Object) boxes value types and relies on reflection to compare two values for equality. Vaše implementace Equals(T) i přepsání Equals(Object) by měly vracet konzistentní výsledky.Both your implementation of Equals(T) and your override of Equals(Object) should return consistent results. Pokud implementujete IEquatable<T>, měli byste také implementovat IComparable<T>, pokud lze instance vašeho typu seřadit nebo seřadit.If you implement IEquatable<T>, you should also implement IComparable<T> if instances of your type can be ordered or sorted. Pokud váš typ implementuje IComparable<T>, je téměř vždy také implementován IEquatable<T>.If your type implements IComparable<T>, you almost always also implement IEquatable<T>.

Všimněte si, že existují některé návrhy, kde typ podporuje relaci objednávky, ale rovnost může být odlišná od vztahu řazení.Note that there are some designs where a type supports an order relation, but equality may be distinct from an ordering relation. Zvažte `Person` třídy, ve které řadíte abecedně.Consider a `Person` class where you sort alphabetically. Dva lidé se stejným názvem řadí stejný název, ale nejsou stejnými osobami.Two people with the same name sort the same, but are not the same person.

Methods

Equals(T)

Označuje, zda je aktuální objekt roven jinému objektu stejného typu.Indicates whether the current object is equal to another object of the same type.

Applies to

See also