Почему '397' используется для переопределения ReSharper GetHashCode?

В контексте условия (например, while или if), (x = y) является как присваиванием, так и выражением. Он возвращает значение, которое присваивается.

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

141
задан Frederik Struck-Schøning 22 January 2018 в 11:55
поделиться

2 ответа

Вероятно, потому что 397 начало достаточного размера, чтобы заставить переменную результата переполнять и смешивать биты хеша несколько, обеспечивая лучшее распределение хэш-кодов. Нет ничего особенно специального приблизительно 397, который отличает его от других начал той же величины.

154
ответ дан Nick Johnson 22 January 2018 в 11:55
поделиться
  • 1
    Замечательная книга, замечательная книга. – Jean-Philippe Caruana 21 July 2010 в 10:27

Ben корректен, отражая блок, Вы видите, что это - просто простое число, которое они приняли решение использовать.

17
ответ дан Nick Craver 22 January 2018 в 11:55
поделиться
  • 1
    Это совершенно верно для всех подклассов Iterable, но усовершенствованное для цикла может использоваться с массивами также, и я предполагаю, это было точкой вопроса. It' s все еще ' синтаксический sugar' но немного отличающийся. – Andreas_D 21 July 2010 в 10:38
Другие вопросы по тегам:

Похожие вопросы: