Встречается на собеседованиях • сегодня
Для чего переопределяют GetHashCode
Переопределение GetHashCode необходимо для корректной работы с хеш-таблицами (Dictionary, HashSet и т.д.). Основные правила:
- Равенство объектов → одинаковый хеш-код (но не наоборот!).
- Стабильность: хеш-код не должен меняться, пока объект используется как ключ.
- Распределение: разные объекты → разные хеш-коды (по возможности).
Пример с переопределением для класса 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!

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы