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
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET