Ist es wichtig, Equals zu überschreiben, wenn ich IEquatable <T> implementiere?

Ich kenne die Wichtigkeit des ÜberschreibensGetHashCode bei der Implementierung von Custom Equality Checks - für die ich implementiert habeIEquality<T> Schnittstelle, und auch der Unterschied zwischen generischen und nicht generischenEquals wie hier besprochen. Jetzt gibt es einen Punkt zu überschreibenEquals(object t)? Würde nicht alles unter Generika fallenEquals(T t)?

public override int GetHashCode() //required for hashsets and dictionaries
{
    return Id;
}

public bool Equals(T other) //IEquatable<T> here
{
    return Id == other.Id;
}

public override bool Equals(object obj) //required??
{
    return Equals(obj as T);
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage