¿Cuál es la mejor manera de crear su propio método GetHashCode para una clase en C#? Supongamos que tengo una clase simple (que reemplaza el método Equals), de la siguiente manera:Creando el método GetHashCode en C#
class Test
{
public string[] names;
public double[] values;
public override bool Equals(object obj)
{
return (obj is Test) && this.Equals((Test)obj);
}
public bool Equals(Test t)
{
return names.Equals(t.names) && values.Equals(t.values);
}
}
¿Debo utilizar el código predeterminado para el método GetHashCode?
public override int GetHashCode()
{
return base.GetHashCode();
}
¿Debo basar el método en los contenidos de mi clase?
public override int GetHashCode()
{
return names.GetHashCode() + values.GetHashCode() ;
}
¿O debería hacer algo más?
Usted no está anulando es igual aquí. – jjnguy
En realidad, creo que conducirá a stackoverflow. – jjnguy
No, no desbordará la pila. Sin embargo, tampoco funcionará. – SLaks