Уилл стринг.Метод GetHashCode() возвращает отрицательное значение?

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

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

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

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

2 ответов


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

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

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


оно может возвратить отрицательное значение (основанное на msdn):
http://msdn.microsoft.com/en-us/library/system.string.gethashcode.aspx