Co to jest „najlepsza praktyka” do porównywania dwóch wystąpień typu referencyjnego?

Natknąłem się na to ostatnio, do tej pory szczęśliwie nadpisywałem operatora równości (==) i / lubRówna się metoda w celu sprawdzenia, czy dwa typy referencji rzeczywiście zawierają ten samdane (tj. dwa różne przypadki, które wyglądają tak samo).

Używam tego jeszcze bardziej, ponieważ coraz bardziej angażuję się w zautomatyzowane testowanie (porównywanie referencyjnych / oczekiwanych danych z tymi, które zostały zwrócone).

Patrząc na niektóre z nichwytyczne dotyczące standardów kodowania w MSDN Natknąłem się naartykuł to odradza. Teraz rozumiemczemu artykuł mówi o tym (ponieważ nie są takie same)instancja) ale nie odpowiada na pytanie:

Jaki jest najlepszy sposób na porównanie dwóch typów referencyjnych?Powinniśmy wdrożyćIComparable? (Widziałem też wspomnienie, że powinno to być zarezerwowane tylko dla typów wartości).Czy jest jakiś interfejs, o którym nie wiem?Czy powinniśmy po prostu przetoczyć własne ?!

Wielkie dzięki ^ _ ^

Aktualizacja

Wygląda na to, że źle przeczytałem część dokumentacji (to był długi dzień) i nadrzędnyRówna się może być sposób na pójście ..

Jeśli implementujesz typy referencyjne, powinieneś rozważyć zastąpienie metody Equals typowi odniesienia, jeśli twój typ wygląda jak typ podstawowy, taki jak Point, String, BigNumber i tak dalej. Większość typów referencyjnych nie powinna przeciążaćrówność nawet operatorjeśli nadpisują Równe. Jeśli jednak implementujesz typ odniesienia, który ma mieć semantykę wartości, na przykład typ liczby zespolonej, powinieneś zastąpić operatora równości.

questionAnswers(8)

yourAnswerToTheQuestion