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

Для чего переопределяют GetHashCode

Переопределение GetHashCode необходимо для корректной работы с хеш-таблицами (Dictionary, HashSet и т.д.). Основные правила:

  1. Равенство объектов → одинаковый хеш-код (но не наоборот!).
  2. Стабильность: хеш-код не должен меняться, пока объект используется как ключ.
  3. Распределение: разные объекты → разные хеш-коды (по возможности).

Пример с переопределением для класса Person:

csharp
public override int GetHashCode()
{
    unchecked // Игнорируем переполнение
    {
        int hash = 17;
        hash = hash * 23 + (Name?.GetHashCode() ?? 0);
        hash = hash * 23 + Age.GetHashCode();
        return hash;
    }
}

Всегда переопределяйте GetHashCode, если переопределяете Equals!

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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