Was ist „Best Practice“ für den Vergleich zweier Instanzen eines Referenztyps?

Ich bin kürzlich auf dieses Problem gestoßen, bis jetzt habe ich den Gleichstellungsoperator glücklicherweise außer Kraft gesetzt (==) und / oderGleich Methode, um festzustellen, ob zwei Referenztypen tatsächlich dasselbe enthieltenDaten (d. h. zwei verschiedene Instanzen, die gleich aussehen).

Ich benutze dies sogar noch mehr, seit ich mich mehr mit automatisierten Tests beschäftigt habe (Vergleich von Referenz- / erwarteten Daten mit den zurückgegebenen).

Beim Blick über einige derKodierungsstandards Richtlinien in MSDN Ich bin auf eine gestoßenArtikel das rät davon ab. Jetzt verstehe ichWarum der Artikel sagt dies (weil sie nicht gleich sind)Beispiel) aber es beantwortet nicht die Frage:

Wie lassen sich zwei Referenztypen am besten vergleichen?Sollen wir umsetzenIComparable? (Ich habe auch erwähnt, dass dies nur für Werttypen reserviert sein sollte).Gibt es eine Schnittstelle, von der ich nichts weiß?Sollen wir nur unsere eigenen rollen ?!

Vielen Dank ^ _ ^

Aktualisieren

Es sieht so aus, als hätte ich einige der Dokumentationen falsch gelesen (es war ein langer Tag) und sie waren außer Kraft gesetztGleich Vielleicht ist der Weg zu gehen ..

Wenn Sie Referenztypen implementieren, sollten Sie die Equals-Methode für einen Referenztyp überschreiben, wenn Ihr Typ einem Basistyp wie Point, String, BigNumber usw. ähnelt. Die meisten Referenztypen sollten den nicht überlastenGleichberechtigung Betreiber, auchwenn sie Equals überschreiben. Wenn Sie jedoch einen Referenztyp implementieren, der eine Wertesemantik haben soll, z. B. einen komplexen Zahlentyp, sollten Sie den Gleichheitsoperator überschreiben.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage