В .NET GetHashCode возвращает int: значение может быть отрицательным, нулём и любым допустимым 32-битным знаковым числом. Максимум — 2 147 483 647.
Какие значения может принимать хеш-код, в том числе может ли он быть отрицательным или достигать примерно двух миллиардов?
В .NET GetHashCode возвращает int: значение может быть отрицательным, нулём и любым допустимым 32-битным знаковым числом. Максимум — 2 147 483 647.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В .NET GetHashCode возвращает int: значение может быть отрицательным, нулём и любым допустимым 32-битным знаковым числом. Максимум — 2 147 483 647.
Хеш не является уникальным ID: разные объекты могут иметь одинаковое значение. Обязательное правило — равные по используемому сравнению объекты должны давать одинаковый хеш.
Коллекция сама преобразует хеш в индекс бакета. Нельзя сохранять GetHashCode как постоянный идентификатор между процессами или версиями приложения: алгоритм, в частности для строк, может зависеть от процесса и реализации.