Dlaczego „397” jest używane do nadpisania ReSharper GetHashCode?

Podobnie jak wielu z was, używam ReSharper do przyspieszenia procesu rozwoju. Kiedy używasz go do nadpisania elementów równości klasy, gen kodu, który tworzy dla GetHashCode () wygląda tak:

<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>

Oczywiście mam tam swoich własnych członków, ale chcę wiedzieć, dlaczego 397?

EDYCJA: Więc moje pytanie byłoby lepiej sformułowane, czy jest coś „specjalnego” w liczbie pierwszej 397 poza liczbą pierwszą?

questionAnswers(3)

yourAnswerToTheQuestion