Будет ли string.GetHashCode() возвращать отрицательное значение?

Я попытался с периодичностью случайных строк, все значения, которые я получил, положительны, но мне интересно:

Будет ли String.GetHashCode() возвращать отрицательный или 0?

Так как возвращаемое значение int, поэтому я предполагаю, что это возможно, поэтому, если это так, мне нужно изменить свою логику.

Если у вас есть ответ или у вас есть официальные источники, пожалуйста, поделитесь

Ответы

Ответ 1

Да, он может возвращать отрицательные значения.

Вы не должны иметь какую-либо логику, которая работает с значениями GetHashCode().
GetHashCode() не гарантируется быть уникальным и может меняться между сборками.

GetHashCode() следует рассматривать как непрозрачный токен, который можно комбинировать с другими хэшами или модифицировать в хэш-таблицы.