В этой статье Джон Скит упомянул, что обычно использует такой алгоритм для переопределения GetHashCode().
public override int GetHashCode()
{
unchecked // Overflow is fine, just wrap
{
int hash = 17;
// Suitable nullity checks etc, of course :)
hash = hash * 23 + Id.GetHashCode();
return hash;
}
}
Теперь я попытался использовать это, но Resharper сообщает мне, что метод GetHashCode() должен быть хешированием, используя только поля только для чтения (он компилируется отлично, хотя). Что было бы хорошей практикой, потому что прямо сейчас я не могу иметь свои поля только для чтения?
Я попытался создать этот метод с помощью Resharper, вот результат.
public override int GetHashCode()
{
return base.GetHashCode();
}
Это не способствует, если честно...