Использование GetHashCode()
неверно. Вы должны привести к int
. Чтобы использовать его, вы просите, чтобы хищники (или Раймонд) пришли и съели вас.
То, что GetHashCode()
возвращает целочисленное значение перечисления, является подробностью реализации и может измениться в будущих версиях .net.
GetHashCode()
гарантирует, что если два значения равны equal
, то их хэш-коды также равны. Обратный путь не гарантирован.
Мое эмпирическое правило заключается в том, что если бы GetHashCode
вернул постоянное значение, ваша программа все равно должна работать правильно (но потенциально может быть намного медленнее), поскольку константа GetHashCode
тривиально выполняет контракт, но имеет плохие свойства распределения.