Переопределение GetHashCode ()

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

Честно говоря, это не очень помогает ...

Ответы на вопрос(3)

Ваш ответ на вопрос