Substituindo GetHashCode ()
EmEste artigo, Jon Skeet mencionou que ele geralmente usa esse tipo de algoritmo para ignorarGetHashCode ().
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;
}
}
Agora, eu tentei usar isso, mas Resharper me diz que o métodoGetHashCode () deve ser hashing usando apenas campos somente leitura (ele compila bem, no entanto). O que seria uma boa prática, porque agora eu não posso realmente ter meus campos para ser somente leitura?
Eu tentei gerar esse método por Resharper, aqui está o resultado.
public override int GetHashCode()
{
return base.GetHashCode();
}
Isso não contribui muito, para ser honesto ...