类型标记为 InlineArrayAttribute
的默认 Equals()
和 GetHashCode()
引发异常
类型标记为 InlineArrayAttribute 的 Equals(Object) 和 GetHashCode() 的默认行为现在将引发 NotSupportedException 异常。 如果希望不引发异常,库作者应该替代这两种方法。
旧行为
以前,默认实现仅在计算相等性或哈希代码时使用占位符 ref
字段。
新行为
从 .NET 9 开始,当 InlineArrayAttribute 应用于某种类型时,始终会从 Equals(Object) 和 GetHashCode() 的默认实现引发 NotSupportedException 异常。
引入的版本
.NET 9 预览版 6
中断性变更的类型
此更改为行为更改。
更改原因
当前的行为对于确定相等性和计算哈希代码都是不正确的,在调用这些函数时,用户会产生错误的正确感。
建议的操作
库作者应对标记为 InlineArrayAttribute 的所有类型实现 Equals(Object) 和 GetHashCode()。