В этом примере плакат переопределил метод получения хэш-кода . Я понимаю, что это было сделано для того, чтобы обеспечить лучшее хеш-значение для возвращаемого объекта, уменьшить количество коллизий и, следовательно, уменьшить количество случаев, когда необходимо будет вызывать Equals ()
.
Я хотел бы знать, как был рассчитан этот алгоритм:
return 17 + 31 * CurrentState.GetHashCode() + 31 * Command.GetHashCode();
Есть ли особая причина, по которой были выбраны указанные числа? Могу ли я просто выбрать свои собственные числа и вставить в него?