Warum wird '397' für die Überschreibung von ReSharper GetHashCode verwendet?

Wie viele von Ihnen benutze ich ReSharper, um den Entwicklungsprozess zu beschleunigen. Wenn Sie es verwenden, um die Gleichheits-Member einer Klasse zu überschreiben, sieht das Code-Gen, das es für GetHashCode () erzeugt, folgendermaßen aus:

<code>    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;
        }
    }
</code>

Natürlich habe ich einige meiner eigenen Mitglieder, aber ich möchte wissen, warum 397?

EDIT: Also meine Frage wäre besser formuliert, gibt es etwas "Besonderes" an der 397-Primzahl, außer dass es eine Primzahl ist?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage