Tag: 哈希码唯一性

为什么'397'用于ReSharper的GetHashCode覆盖?

像你们中的许多人一样,我使用ReSharper来加速开发过程。 当您使用它来覆盖类的相等成员时,它为GetHashCode()生成的代码生成如下所示: 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; } } 当然我有一些我自己的成员,但是我想知道的是为什么397? 编辑:所以我的问题会更好措辞,是否有什么特殊的397素数之外,它是一个素数?