Как и многие из вас, я использую ReSharper для ускорения процесса разработки. При использовании его для переопределения членов равенства в классе, код поколение он производит для GetHashCode() выглядит следующим образом:Почему «397» используется для переопределения GetHashCode ReSharper?
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?
- EDIT: Итак, мой вопрос будет лучше сформулирован как, есть ли что-то особенное о простом числе 397, за исключением того, что это простое число?
Какая сборка? – 2011-12-13 21:42:03
asm: `JetBrains.ReSharper.Feature.Services.CSharp` метод:` CSharpEqualityHelper.GenerateGetHashCodeBody` – 2012-12-16 02:43:30