String.GetHashCode() возвращает разные значения
Почему GetHashCode() возвращает другое значение для одной и той же строки? Я не могу описать, как дублировать это, но надеюсь, что это не практичная шутка и что две следующие строки пришли из моего окна просмотра в два раза:
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() -1386151123 int
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() 1858139950 int
Как это могло случиться?
Я не знаю, помогает ли это, но я запускаю .NET 4.0 в VS 2010, и я отлаживаю приложение NServiceBus.
Update:
Если вы хотите узнать, что я сделал для этого взгляда на этот поток: Можете ли вы создать хэш-значение x86 при работе в режиме x64?
Ответы
Ответ 1
Согласно документации:
Если два строковых объекта равны, метод GetHashCode возвращает одинаковые значения. Однако для каждого уникального значения строки не существует уникального значения хеш-кода. Различные строки могут возвращать один и тот же хэш-код.
Таким образом, некоторый другой эффект должен быть в игре для двух вызовов, чтобы давать разные результаты. Одна из теорий заключается в том, что вы переключали платформы между вызовами, от x86 до x64 или наоборот.