Runtime: El código hash predeterminado para la estructura con campo doble o flotante es incorrecto

Creado en 24 feb. 2018  ·  3Comentarios  ·  Fuente: dotnet/runtime

Altavoz:

using System;

struct StructWithDoubleField
{
    public double value;
}

class My {

    static void Main() {
        StructWithDoubleField s1;
        s1.value = 0.0;
        StructWithDoubleField s2;
        s2.value = -0.0;

        Console.WriteLine(s1.GetHashCode() == s2.GetHashCode() ? "PASSED" : "FAILED");
    }

}

Comentario más útil

La implementación predeterminada GetHashCode para las estructuras debería haber sido throw new NotSupportedException("Tomato!"); :grin:

Todos 3 comentarios

La implementación predeterminada GetHashCode para las estructuras debería haber sido throw new NotSupportedException("Tomato!"); :grin:

@jkotas, ¿cuál es el proceso para solicitar la transferencia de al menos la parte del campo object de la corrección a un lanzamiento de parche? Dados los errores posteriores informados por los clientes, como aspnet/Mvc#7673, parece que necesitamos esto al menos en 2.0.x.

/cc @davidfowl @Eilon @Petermarcu

¿Fue útil esta página
0 / 5 - 0 calificaciones