Runtime: Hashcode padrão para struct com campo double ou float está errado

Criado em 24 fev. 2018  ·  3Comentários  ·  Fonte: dotnet/runtime

Alto falante:

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");
    }

}

Comentários muito úteis

A implementação padrão GetHashCode para structs deveria ter sido throw new NotSupportedException("Tomato!"); :grin:

Todos 3 comentários

A implementação padrão GetHashCode para structs deveria ter sido throw new NotSupportedException("Tomato!"); :grin:

@jkotas qual é o processo para solicitar a portabilidade de pelo menos a parte do campo object da correção para uma versão de patch? Dados os bugs downstream relatados pelo cliente, como aspnet/Mvc#7673, parece que precisamos disso pelo menos na versão 2.0.x.

/cc @davidfowl @Eilon @Petermarcu

Esta página foi útil?
0 / 5 - 0 avaliações