类型标记为 InlineArrayAttribute 的默认 Equals()GetHashCode() 引发异常

类型标记为 InlineArrayAttributeEquals(Object)GetHashCode() 的默认行为现在将引发 NotSupportedException 异常。 如果希望不引发异常,库作者应该替代这两种方法。

旧行为

以前,默认实现仅在计算相等性或哈希代码时使用占位符 ref 字段。

新行为

从 .NET 9 开始,当 InlineArrayAttribute 应用于某种类型时,始终会从 Equals(Object)GetHashCode() 的默认实现引发 NotSupportedException 异常。

引入的版本

.NET 9 预览版 6

中断性变更的类型

此更改为行为更改

更改原因

当前的行为对于确定相等性和计算哈希代码都是不正确的,在调用这些函数时,用户会产生错误的正确感。

库作者应对标记为 InlineArrayAttribute 的所有类型实现 Equals(Object)GetHashCode()

受影响的 API