В этой статье Джон Скит упомянул, что он обычно использует этот тип алгоритма для переопределения 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();
}
Честно говоря, это мало что дает...