Будет ли string.GetHashCode() возвращать отрицательное значение?
Я попытался с периодичностью случайных строк, все значения, которые я получил, положительны, но мне интересно:
Будет ли String.GetHashCode()
возвращать отрицательный или 0?
Так как возвращаемое значение int, поэтому я предполагаю, что это возможно, поэтому, если это так, мне нужно изменить свою логику.
Если у вас есть ответ или у вас есть официальные источники, пожалуйста, поделитесь
Ответы
Ответ 1
Да, он может возвращать отрицательные значения.
Вы не должны иметь какую-либо логику, которая работает с значениями GetHashCode()
.
GetHashCode()
не гарантируется быть уникальным и может меняться между сборками.
GetHashCode()
следует рассматривать как непрозрачный токен, который можно комбинировать с другими хэшами или модифицировать в хэш-таблицы.
Ответ 2
Он может вернуть отрицательное значение (на основе msdn):
http://msdn.microsoft.com/en-us/library/system.string.gethashcode.aspx