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);
}