Что такое «Лучшая практика» для сравнения двух экземпляров ссылочного типа?

Я сталкивался с этим недавно, до сих пор я счастливо переопределял оператор равенства (==) и / илиEquals метод, чтобы увидеть, если два ссылочных типа на самом деле содержали одинаковыеdata (то есть два разных экземпляра, которые выглядят одинаково).

Я использую это еще больше, так как я больше разбираюсь в автоматизированном тестировании (сравнивая справочные / ожидаемые данные с возвращенными).

Просматривая некоторые изРуководство по стандартам кодирования в MSDN Я наткнулся настатья что советует против этого. Теперь я понимаюwhy статья говорит об этом (потому что они не совпадаютinstance) но это не отвечает на вопрос:

What is the best way to compare two reference types? Should we implement IComparable? (I have also seen mention that this should be reserved for value types only). Is there some interface I don't know about? Should we just roll our own?!

Большое спасибо ^ _ ^

Update

Похоже, я неправильно прочитал некоторые документы (это был долгий день) и переписалРавно может быть, путь ...

If you are implementing reference types, you should consider overriding the Equals method on a reference type if your type looks like a base type such as a Point, String, BigNumber, and so on. Most reference types should not overload the equality operator, even if they override Equals. However, if you are implementing a reference type that is intended to have value semantics, such as a complex number type, you should override the equality operator.

Ответы на вопрос(8)

Ваш ответ на вопрос