C # .Equals (), .ReferenceEquals () и оператор ==
Мое понимание этих трех было:
.Equals()
тесты на равенство данных (из-за отсутствия лучшего описания)..Equals()
может возвращать True для разных экземпляров одного и того же объекта, и это наиболее часто переопределенный метод.
.ReferenceEquals()
проверяет, являются ли два объекта одним и тем же экземпляром и не могут быть переопределены.
==
такой же, какReferenceEquals()
по умолчанию, но это МОЖЕТ быть отменено.
НоC # станция состояния:
В классе объектаEquals
а такжеReferenceEquals
методы семантически эквивалентны, за исключением того, чтоReferenceEquals
работает только на экземплярах объекта.ReferenceEquals
Метод статичен.
Теперь я не понимаю. Может кто-нибудь пролить некоторый свет на это?