Встречается на собеседованиях • сегодня

Для чего нужен метод Equals

Метод Equals используется для сравнения объектов на равенство. В отличие от оператора ==, который сравнивает ссылки, Equals может быть переопределён для сравнения по значению.

По умолчанию Equals в классе Object сравнивает ссылки (как ==), но его часто переопределяют в пользовательских классах для логического сравнения полей.

Пример:

csharp
public class Person
{
    public string Name { get; set; }

    public override bool Equals(object obj)
    {
        if (obj is Person other)
            return Name == other.Name;
        return false;
    }

    public override int GetHashCode() => Name?.GetHashCode() ?? 0;
}

Нюансы:

  • Всегда переопределяйте GetHashCode, если переопределяете Equals (иначе нарушится контракт хеш-таблиц).
  • Для структур Equals по умолчанию сравнивает все поля через рефлексию (медленно), поэтому лучше переопределять.
  • Для строк Equals сравнивает содержимое, а не ссылки.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы