Breaking

Post Top Ad

Your Ad Spot

lunes, 4 de mayo de 2020

¿Por qué Visual Studio agrega "-1937169414" a un cálculo de código hash generado?

Si usa el propio menú de refactorización de Visual Studio para agregar una implementación GetHashCode a una clase como esta:
Generar menú GetHashCode
y seleccione la única propiedad int de la clase:
Pantalla de selección de miembros
genera este código en .NET Framework:
public override int GetHashCode()
{
    return -1937169414 + Value.GetHashCode();
}
HashCode.Combine(Value)en su lugar, genera en .NET Core, que no estoy seguro si implica el mismo valor)
¿Qué tiene de especial este valor? ¿Por qué Visual Studio no usa Value.GetHashCode()directamente? Según tengo entendido, realmente no afecta la distribución de hash. Como es solo una suma, los valores consecutivos aún se acumularían juntos.
EDITAR: solo intenté esto con diferentes clases con Valuepropiedades, pero aparentemente el nombre de la propiedad afecta el número generado. Por ejemplo, si cambia el nombre de la propiedad a Halue, el número se convierte en 387336856.

No hay comentarios.:

Publicar un comentario

Post Top Ad

Your Ad Spot

Páginas