IEquatable<T> IEquatable<T> IEquatable<T> IEquatable<T> Interface

Définition

Définit une méthode généralisée qu'un type valeur ou une classe implémente pour créer une méthode spécifique au type permettant de déterminer l'égalité des instances.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)

Paramètres de type

T

Type des objets à comparer.The type of objects to compare.

Dérivé

Exemples

Consultez l’exemple de la IEquatable<T>.Equals (méthode).See the example for the IEquatable<T>.Equals method.

Remarques

Cette interface est implémentée par les types dont les valeurs peuvent être comparées (pour les classes d’exemple, numérique et chaîne).This interface is implemented by types whose values can be equated (for example, the numeric and string classes). Un type valeur ou une classe implémente la Equals méthode pour créer une méthode spécifique au type permettant de déterminer l’égalité des instances.A value type or class implements the Equals method to create a type-specific method suitable for determining equality of instances.

Notes

Le IComparable<T> interface définit le CompareTo (méthode), qui détermine l’ordre de tri des instances du type d’implémentation.The IComparable<T> interface defines the CompareTo method, which determines the sort order of instances of the implementing type. Le IEquatable<T> interface définit le Equals (méthode), qui détermine l’égalité des instances du type d’implémentation.The IEquatable<T> interface defines the Equals method, which determines the equality of instances of the implementing type.

Le IEquatable<T> interface est utilisée par les objets de collection générique, tel que Dictionary<TKey,TValue>, List<T>, et LinkedList<T> lors du test d’égalité dans des méthodes telles que Contains, IndexOf, LastIndexOf, et 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. Elle doit être implémentée pour tout objet qui peut être stocké dans une collection générique.It should be implemented for any object that might be stored in a generic collection.

Notes pour les responsables de l’implémentation

Remplacez le paramètre de type de la IEquatable<T> interface avec le type qui implémente cette interface.Replace the type parameter of the IEquatable<T> interface with the type that is implementing this interface. Si vous implémentez IEquatable<T>, vous devez également remplacer les implémentations de classe de base de Equals(Object) et GetHashCode() afin que leur comportement est cohérent avec celui de la Equals(T) (méthode).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. Si vous substituez Equals(Object), votre implémentation substituée est également appelée dans les appels à la méthode statique Equals(System.Object, System.Object) méthode sur votre classe.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. En outre, vous devez surcharger les op_Equality et op_Inequality opérateurs.In addition, you should overload the op_Equality and op_Inequality operators. Cela garantit que tous les tests d’égalité retournent des résultats cohérents.This ensures that all tests for equality return consistent results.

Pour plus d’informations sur la substitution Equals(Object), consultez le Equals(Object) article.For information on overriding Equals(Object), see the Equals(Object) article.

Pour un type valeur, vous devez toujours implémenter IEquatable<T> et substituer Equals(Object) pour de meilleures performances.For a value type, you should always implement IEquatable<T> and override Equals(Object) for better performance. Equals(Object) zones de types valeur et s’appuie sur la réflexion pour comparer deux valeurs sont égales.Equals(Object) boxes value types and relies on reflection to compare two values for equality. Votre mise en œuvre de Equals(T) et votre substitution de Equals(Object) doit retourner des résultats cohérents.Both your implementation of Equals(T) and your override of Equals(Object) should return consistent results. Si vous implémentez IEquatable<T>, vous devez également implémenter IComparable<T> si les instances de votre type peuvent être ordonnées ou triées.If you implement IEquatable<T>, you should also implement IComparable<T> if instances of your type can be ordered or sorted. Si votre type implémente IComparable<T>, vous implémentez également presque toujours IEquatable<T>.If your type implements IComparable<T>, you almost always also implement IEquatable<T>.

Notez qu’il existe certaines conceptions où un type prend en charge une relation d’ordre, mais l’égalité peut être différente d’une relation de tri.Note that there are some designs where a type supports an order relation, but equality may be distinct from an ordering relation. Envisagez un `Person` classe où vous triez par ordre alphabétique.Consider a `Person` class where you sort alphabetically. Deux personnes avec le même nom trient les mêmes, mais ne sont pas la même personne.Two people with the same name sort the same, but are not the same person.

Méthodes

Equals(T) Equals(T) Equals(T) Equals(T)

Indique si l'objet actuel est égal à un autre objet du même type.Indicates whether the current object is equal to another object of the same type.

S’applique à

Voir aussi