I'm working with a domain model and was thinking about the various ways that we have to implement this two methods in .NET. What is your preferred strategy?
This is my current implementation:
public override bool Equals(object obj)
{
var newObj = obj as MyClass;
if (null != newObj)
{
return this.GetHashCode() == newObj.GetHashCode();
}
else
{
return base.Equals(obj);
}
}
//Since this is an entity I can use it´s Id
//When I don´t have an Id I usually make a composite key of the properties
public override int GetHashCode()
{
return String.Format("MyClass{0}", this.Id.ToString()).GetHashCode();
}