Я читал документацию MSDN о object.Equals
. в упомянутой части замечаний:
Если два объекта не представляют одну и ту же ссылку на объект и none равно null, он вызывает objA.Equals(objB) и возвращает результат. Это означает, что если objA переопределяет метод Object.Equals(Object) это переопределение вызывается.
Мой вопрос в том, почему они не реализовали эту часть как objA.Equals(objB) && objB.Equals(objA)
, чтобы сделать равенство симметричным и просто касаться одной стороны отношения? Это может привести к странному поведению при вызове object.Equals
.
РЕДАКТИРОВАТЬ: Странное поведение может происходить, когда тип objA переопределяет метод Equals
и реализует его как нечто непредсказуемое, но тип objB не переопределяет Equals
.