/// <summary> /// Determines whether the specified objects are equal. /// </summary> /// <returns> /// true if the specified objects are equal; otherwise, false. /// </returns> /// <param name="x"> /// The first object of type <see cref="IMaintainableMutableObject"/> to compare. /// </param> /// <param name="y"> /// The second object of type <see cref="IMaintainableMutableObject"/> to compare. /// </param> public bool Equals(IMaintainableMutableObject x, IMaintainableMutableObject y) { if (ReferenceEquals(x, y)) { return(true); } if (x == null || y == null) { return(false); } IStructureReference firstReference = _fromMutable.Build(x); IStructureReference secondReference = _fromMutable.Build(y); return(firstReference.Equals(secondReference)); }