public override bool Equals(object obj) { if (obj is ObjectName objName) { if (name.Equals(objName.name) && details.Equals(objName.details) && information.Equals(objName.information) && IsBlockName.Equals(objName.IsBlockName) && IsReadOnly.Equals(objName.IsReadOnly)) { return(true); } } else if (obj is string str) { return(Equals(new ObjectName(str))); } return(false); }