Czy ważne jest zastąpienie równości, jeśli implementuję program IEquatable <T>?
Znam znaczenie nadpisywaniaGetHashCode
przy wdrażaniu niestandardowych kontroli równości - dla których wdrożyłemIEquality<T>
interfejs, a także różnica między rodzajową i nietypowąEquals
jak omówiono tutaj. Teraz jest punkt do nadpisaniaEquals(object t)
? Czy wszystko nie byłoby ogólneEquals(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);
}