Come molti di voi, utilizzo ReSharper per accelerare il processo di sviluppo. Quando lo usi per sovrascrivere i membri di uguaglianza di una classe, il code-gen che produce per GetHashCode () appare come:
public override int GetHashCode()
{
unchecked
{
int result = (Key != null ? Key.GetHashCode() : 0);
result = (result * 397) ^ (EditableProperty != null ? EditableProperty.GetHashCode() : 0);
result = (result * 397) ^ ObjectId;
return result;
}
}
Ovviamente ho alcuni dei miei membri lì dentro, ma quello che voglio sapere è perché 397?
- EDIT: Quindi la mia domanda sarebbe meglio formulata in quanto, c'è qualcosa di "speciale" nel fatto che il numero primo 397 al di fuori di esso è un numero primo?