次の方法で共有


InlineArrayAttribute でマークされた型の既定の Equals()GetHashCode() のスロー

InlineArrayAttribute でマークされた型の Equals(Object)GetHashCode() の既定の動作は、NotSupportedException がスローされるようになりました。 ライブラリの作成者は、これら 2 つのメソッドがスローされないことが予想される場合にオーバーライドする必要があります。

以前の動作

以前の既定の実装では、等価性またはハッシュ コードを計算するときに、プレースホルダー ref フィールドのみが使用されていました。

新しい動作

.NET 9 以降では、InlineArrayAttribute が型に適用されると、Equals(Object)GetHashCode() の既定の実装から常に NotSupportedException がスローされます。

導入されたバージョン

.NET 9 Preview 6

破壊的変更の種類

この変更は、動作変更です。

変更理由

現在の動作は、等価性の決定とハッシュ コードの計算の両方に対して正しくなく、ユーザーが、これらの関数を呼び出すときに誤った正確性を認識することになります。

ライブラリ作成者は、InlineArrayAttribute でマークされているすべての型に対して Equals(Object)GetHashCode() の両方を実装する必要があります。

影響を受ける API