Runtime: Le code de hachage par défaut pour la structure avec un champ double ou flottant est incorrect

Créé le 24 févr. 2018  ·  3Commentaires  ·  Source: dotnet/runtime

Conférencier:

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

}

Commentaire le plus utile

L'implémentation par défaut GetHashCode pour les structures aurait dû être throw new NotSupportedException("Tomato!"); :grin:

Tous les 3 commentaires

L'implémentation par défaut GetHashCode pour les structures aurait dû être throw new NotSupportedException("Tomato!"); :grin:

@jkotas quel est le processus pour demander le portage d'au moins la portion de champ object du correctif vers une version de correctif ? Compte tenu des bogues en aval signalés par les clients tels que aspnet/Mvc#7673, il semble que nous en ayons besoin au moins dans la version 2.0.x.

/cc @davidfowl @Eilon @Petermarcu

Cette page vous a été utile?
0 / 5 - 0 notes