Равенство говорит вам, если два экземпляра равны.Сопоставимость говорит вам, как их сортировать.
Вы переопределяете версию экземпляра Object.Equals
, когда лучше, чем среда выполнения, знаете, как работает равенство для вашего типа.
Равенство для ссылочных типов по умолчанию установлено наСправочное равенство (одна и та же ссылка - один и тот же объект).
object o1 = new object();
object o2 = o1;
if(o2==o1)
{
Console.WriteLine("These reference types are equal");
}
object o3 = new object();
if(o2 != o3)
{
Console.WriteLine("These reference types are not equal");
}
Равенство по умолчанию для типов значений означает, что все переменные-члены равны.Как правило, вы должны переопределять Equals для типов значений, потому что вы, вероятно, будете лучше знать, что означает equals.
Каким образом эта сопоставимость эффектов влияет на то, что сопоставимость в некоторой степени зависит от равенства.Чтобы знать, что значит быть меньше или больше, чем нужно, нужно знать, что значит «.»