@Aleviy

Разница CompareTo() в IComparable и Equals() в IEquatable?

Нужно сравнить параметр типа в обобщенном методе. Какая разница этих двух методов для сравнения?
  • Вопрос задан
  • 204 просмотра
Решения вопроса 2
Nipheris
@Nipheris Куратор тега C#
IComparable предназначен для установления отношения порядка между объектами, реализующими этот интерфейс, ну или грубо говоря, для сортировки. Т.е. когда для двух данных объектов А и Б вы можете утверждать, что А < Б ИЛИ А == Б ИЛИ А > Б.

IEquatable предназначен для установления отношения равенства. Когда для двух данных объектов А и Б вы можете утверждать, что А == Б или А != Б.

Далеко не для всех типов данных вы хотите и можете устанавливать отношение порядка, в то время как для большинства типов с value-семантикой вы захотите иметь отношение равенства/неравенства. Это настолько частая и необходимая вещь, что записи в C# автоматически реализуют для вас IEquatable.
Ответ написан
@oleg_ods
IComparable - больше/меньше
IEquatable - равен/не равен
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы