Важно ли переопределить 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);
}

Ответы на вопрос(3)

Ваш ответ на вопрос