En el ejemplo this, el cartel ha anulado el método de obtener código hash. Entiendo que esto se ha hecho para proporcionar un mejor valor hash para el objeto devuelto, para reducir el número de colisiones y, por lo tanto, para reducir el número de ocasiones en las que será necesario llamar al Equals()
.C# Reemplazando el método GetHashCode
lo que me gustaría saber, es cómo se calcula este algoritmo:
return 17 + 31 * CurrentState.GetHashCode() + 31 * Command.GetHashCode();
¿Hay alguna razón en particular que los números en cuestión se seleccionaron? ¿Podría simplemente haber escogido mis propios números para ponerlo?
Para información, el compilador MS C# (para anon-types) usa una semilla de '-1134271262', y un multiplicador de' -1521134295'. Solo digo ' –
@MarcGravell: ¿Tiene la fuente para eso? – DeepSpace101
@ DeepSpace101 ILDASM; p –