IEquatable<T> Schnittstelle

Definition

Definiert eine generalisierte Methode, die von einem Werttyp oder von einer Klasse zur Erstellung einer typspezifischen Methode implementiert wird, um die Gleichheit von Instanzen zu ermitteln.

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

Typparameter

T

Der Typ der zu vergleichenden Objekte.

Abgeleitet

Beispiele

Siehe das Beispiel für die IEquatable<T>.Equals Methode.

Hinweise

Diese Schnittstelle wird durch Typen implementiert, deren Werte gleichgesetzt werden können (z. B. die numerischen und Zeichenfolgenklassen). Ein Werttyp oder eine Klasse implementiert die Equals Methode, um eine typspezifische Methode zu erstellen, die für die Bestimmung der Gleichheit von Instanzen geeignet ist.

Hinweis

Die IComparable<T> Schnittstelle definiert die CompareTo Methode, die die Sortierreihenfolge von Instanzen des Implementierungstyps bestimmt. Die IEquatable<T> Schnittstelle definiert die Equals Methode, die die Gleichheit von Instanzen des Implementierungstyps bestimmt.

Die IEquatable<T> Schnittstelle wird von generischen Auflistungsobjekten wie List<T>Dictionary<TKey,TValue>, , und LinkedList<T> beim Testen der Gleichheit in solchen Methoden wie Contains, IndexOf, , LastIndexOfund Remove. Es sollte für jedes Objekt implementiert werden, das in einer generischen Auflistung gespeichert werden kann.

Hinweise für Ausführende

Ersetzen Sie den Typparameter der IEquatable<T> Schnittstelle durch den Typ, der diese Schnittstelle implementiert.

Wenn Sie implementieren, sollten Sie auch die Basisklassenimplementierungen Equals(Object) außer Kraft setzenIEquatable<T>, GetHashCode() damit ihr Verhalten mit der Methode Equals(T) konsistent ist. Wenn Sie außer Kraft setzen Equals(Object), wird ihre überschriebene Implementierung auch in Aufrufen der statischen Equals(System.Object, System.Object) Methode für Ihre Klasse aufgerufen. Darüber hinaus sollten Sie die und op_Inequality die op_Equality Operatoren überladen. Dadurch wird sichergestellt, dass alle Tests für Gleichheit konsistente Ergebnisse zurückgeben.

Informationen zum Außerkraftsetzen Equals(Object)finden Sie unter Equals(Object).

Für einen Werttyp sollten Sie immer eine bessere Leistung implementieren IEquatable<T> und außer Kraft setzen Equals(Object) . Equals(Object) Box-Werttypen und basiert auf der Reflexion, um zwei Werte für die Gleichheit zu vergleichen. Sowohl Ihre Implementierung als Equals(T) auch Ihre Außerkraftsetzung Equals(Object) sollten konsistente Ergebnisse zurückgeben.

Wenn Sie implementieren, sollten Sie auch implementierenIEquatable<T>IComparable<T>, ob Instanzen Ihres Typs sortiert oder sortiert werden können. Wenn Ihr Typ implementiert IComparable<T>wird, implementieren IEquatable<T>Sie fast immer auch .

Beachten Sie, dass einige Designs vorhanden sind, bei denen ein Typ eine Reihenfolgesbeziehung unterstützt, die Gleichheit kann jedoch von einer Sortierungsbeziehung abweichen. Betrachten Sie eine Person Klasse, in der Sie alphabetisch sortieren. Zwei Personen mit demselben Namen sortieren dieselben, sind aber nicht die gleiche Person.

Methoden

Equals(T)

Gibt an, ob das aktuelle Objekt gleich einem anderen Objekt des gleichen Typs ist.

Gilt für:

Siehe auch