Важно ли переопределить Equals, если я реализую IEquatable <T>?
Я знаю важность переопределенияGetHashCode
при реализации пользовательских проверок на равенство - для которых я реализовалIEquality<T>
интерфейс, а также разница между общим и неуниверсальнымEquals
как обсуждено здесь. Теперь есть смысл переопределитьEquals(object t)
? Разве не все подпадает под общийEquals(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);
}