/// <summary> /// Is the specified object equivalent to this instance? (All fields identical) /// </summary> /// <param name="obj">The object to compare.</param> /// <returns><see langword="true"/>, if the object is a <see cref="PersonName"/> and ALL fields are identical; otherwise, <see langword="false"/></returns> public override bool Equals(object obj) { if (!(obj is PersonName pn)) { return(false); } if (First.HasChanges(pn.First)) { return(false); } if (Last.HasChanges(pn.Last)) { return(false); } if (Middle.HasChanges(pn.Middle)) { return(false); } if (Prefix.HasChanges(pn.Prefix)) { return(false); } if (Suffix.HasChanges(pn.Suffix)) { return(false); } if (Nickname.HasChanges(pn.Nickname)) { return(false); } return(true); }