В примере this плакат переопределил метод get hash code. Я понимаю, что это было сделано для того, чтобы обеспечить лучшее значение хэша для возвращаемого объекта, уменьшить количество коллизий и, следовательно, уменьшить количество случаев, необходимо будет позвонить Equals()
.C# Переопределение метода GetHashCode
Что я хотел бы знать, как этот алгоритм был рассчитан:
return 17 + 31 * CurrentState.GetHashCode() + 31 * Command.GetHashCode();
Есть ли конкретная причина того, что числа в вопросе были выбраны? Могу ли я просто подобрать свои собственные номера, чтобы положить в него?
Только для информации компилятор MS C# (для анонных типов) использует семя '-1134271262' и множитель' -1521134295'. Просто sayin ' –
@MarcGravell: У вас есть источник для этого? – DeepSpace101
@ DeepSpace101 ILDASM; p –