Runtime: Хэш-код по умолчанию для структуры с двойным или плавающим полем неверен

Созданный на 24 февр. 2018  ·  3Комментарии  ·  Источник: dotnet/runtime

Репро:

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

}

Самый полезный комментарий

Реализация по умолчанию GetHashCode для структур должна была быть throw new NotSupportedException("Tomato!"); :grin:

Все 3 Комментарий

Реализация по умолчанию GetHashCode для структур должна была быть throw new NotSupportedException("Tomato!"); :grin:

https://github.com/dotnet/coreclr/pull/13164 пропустил этот случай.

@jkotas , каков процесс запроса переноса хотя бы части поля object исправления в выпуск исправления? Учитывая сообщения об ошибках нисходящего потока, о которых сообщают клиенты, такие как aspnet/Mvc#7673, кажется, что нам это нужно, по крайней мере, в 2.0.x.

/cc @davidfowl @Eilon @Petermarcu

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

jzabroski picture jzabroski  ·  3Комментарии

chunseoklee picture chunseoklee  ·  3Комментарии

GitAntoinee picture GitAntoinee  ·  3Комментарии

noahfalk picture noahfalk  ·  3Комментарии

EgorBo picture EgorBo  ·  3Комментарии