Я искал ответ в Интернете, но все, что я нашел, было:
Изменить: добавлены некоторые элементы в ответ на ответы
-
Для IEquatable
- Я должен перегружать
Equals(),GetHashCode(),==и!=вместе. - Я должен уменьшить избыточность через реализацию
!=через==. - Я должен запечатать класс
- Я должен перегружать
-
Для IComparable
- Я должен перегружать
Equals(),GetHashCode(),<,>,<=и>=вместе. - На самом деле рекомендуется реализовать IEquatable при этом
- Перегрузите нестандартную версию IComparable
-
CompareTo() == 0должен означатьEquals() == true
- Я должен перегружать
Итак, я думал об этом:
public bool Equals(T other)
{
if ((object)other == null)
{
return false;
}
return CompareTo(other) == 0;
}
Я что-то пропускаю или это нормально?