Vergleicht man zwei Objekte .
Wenn ich ein Komplexes Objekt, was ist die best-practice-pattern, code zu schreiben, zu vergleichen 2 Instanzen, um zu sehen, wenn Sie die gleichen
InformationsquelleAutor leora | 2009-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Implementieren, die IEquatable-Schnittstelle. Dies definiert eine Allgemeine Methode, die von einem Werttyp oder einer Klasse implementiert, um die Erstellung einer typspezifischen Methode für die Bestimmung der Gleichheit von Instanzen. Vergessen Sie nicht, überschreiben von Equals(object).
Mehr Informationen hier:
http://msdn.microsoft.com/en-us/library/ms131187.aspx
IEquatable wird Ihnen nur sagen, wenn Sie identisch sind oder nicht. IComparable wird Ihnen eine relative Reihenfolge. Für Objekte, die nicht bestellt, aber sind gleichsetzbar ist (Bilder zum Beispiel), die Sie nicht verwenden können, IComparable.
ist .Equals() das gleiche wie == ??
Nein ist es nicht. Dies bedeutet eine einfache Referenz-Vergleich. Mehr info hier: msdn.microsoft.com/en-us/library/53k8ybth(VS.80).aspx
Mehr info, tut es eine einfache Referenz-Vergleich, es sei denn, Sie überschreiben Sie den = = - operator
InformationsquelleAutor Ray Booysen
Ich denke, die Antwort ist sehr problem abhängig. Zum Beispiel, möchten Sie vielleicht zu prüfen, Objekte, die gleich, nur wenn alle Ihre Eigenschaften sind äquivalent. Dies wäre vielleicht der Fall sein, wo jedes Objekt nicht eindeutig identifizieren Eigentum. Wenn es eine Eigenschaft (oder Eigenschaften), dass ein ID-oder ID und Version identifiziert eindeutig jedes Objekt von dem Typ, dann können Sie nur wollen, um zu vergleichen, basierend auf dieser Eigenschaft (oder Eigenschaften).
Das base-Muster, jedoch sollte so etwas wie:
Beachten Sie, dass wenn Sie das überschreiben der Equals-operator, Sie wollen auch GetHashCode überschreiben (), so dass die hash-codes für gleichwertige Objekte sind die gleichen. Dadurch wird sichergestellt, dass die Datenstrukturen, die Verwendung der hash-code für die Bestimmung der doppelte Schlüssel ordnungsgemäß funktioniert, wenn das Objekt als Schlüssel verwendet.
InformationsquelleAutor tvanfosson
Da Sie erwähnt, ein Komplexes Objekt, stellen Sie sicher, dass alle zusammengesetzten Objekte in der Komplexen Objekt-Implementierung von equals(Object) erwähnt tvanfosson. Schließlich die Umsetzung entspricht in der Komplexen Objekts, wobei von Vorteil ist gleich von allen zusammengesetzten Objekten
InformationsquelleAutor Sathish