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

Sehen Sie sich das Beispiel für die IEquatable<T>.Equals -Methode an.

Hinweise

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

Hinweis

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

Die IEquatable<T> -Schnittstelle wird von generischen Auflistungsobjekten wie Dictionary<TKey,TValue> , und List<T> LinkedList<T> verwendet, wenn in Methoden wie , , und auf Gleichheit getestet Contains IndexOf LastIndexOf Remove wird. Sie 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 IEquatable<T> implementieren, sollten Sie auch die Basisklassenimplementierungen von und überschreiben, Equals(Object) damit ihr Verhalten mit dem der GetHashCode() -Methode konsistent Equals(T) ist. Wenn Sie Equals(Object) überschreiben, 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 op_Equality Operatoren und überladen. op_Inequality Dadurch wird sichergestellt, dass alle Gleichheitstests konsistente Ergebnisse zurückgeben.

Informationen zum Überschreiben von Equals(Object) finden Sie unter Equals(Object) .

Für einen Werttyp sollten Sie immer implementieren IEquatable<T> und überschreiben, Equals(Object) um eine bessere Leistung zu erzielen. Equals(Object) schachtelt Werttypen und verwendet Reflektion, um zwei Werte auf Gleichheit zu vergleichen. Sowohl Die Implementierung von Equals(T) als auch die Außerkraftsetzung von Equals(Object) sollten konsistente Ergebnisse zurückgeben.

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

Beachten Sie, dass es einige Entwürfe gibt, bei denen ein Typ eine Reihenfolgenbeziehung unterstützt, aber Gleichheit von einer Sortierbeziehung abweichen kann. Betrachten Sie eine Person Klasse, in der Sie alphabetisch sortieren. Zwei Personen mit dem gleichen Namen werden gleich sortiert, sind aber nicht dieselbe Person.

Methoden

Equals(T)

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

Gilt für

Siehe auch