スピーカー:
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:である必要があります。
https://github.com/dotnet/coreclr/pull/13164はこのケースを見逃しました。
@jkotasパッチリリースへの修正の少なくともobject
フィールド部分の移植を要求するプロセスは何ですか? aspnet / Mvc#7673などの顧客から報告されたダウンストリームのバグを考えると、少なくとも2.0.xではこれが必要なようです。
/ cc @davidfowl @Eilon @Petermarcu
最も参考になるコメント
構造体のデフォルトの
GetHashCode
実装は、throw new NotSupportedException("Tomato!");
:grin:である必要があります。