Quelle est la meilleure stratégie pour d'égal à Égal et GetHashCode?

Je travaille avec un modèle de domaine et a la réflexion sur les différentes façons que nous avons de mettre en œuvre ces deux méthodes .NET. Quelle est votre stratégie préférée?

C'est mon actuel de mise en œuvre:

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 its 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();
}
InformationsquelleAutor tucaz | 2010-03-02