Lançamento padrão Equals()
e GetHashCode()
para tipos marcados com InlineArrayAttribute
O comportamento padrão para Equals(Object) e GetHashCode() em tipos marcados com InlineArrayAttribute agora é lançar um NotSupportedException. Os autores de bibliotecas devem substituir esses dois métodos se for esperado que eles não sejam lançados.
Comportamento anterior
Anteriormente, as implementações padrão usavam apenas o campo de espaço reservado ref
computando a igualdade ou o código hash.
Novo comportamento
A partir do .NET 9, um NotSupportedException é sempre lançado a partir das implementações padrão de Equals(Object) e GetHashCode() quando InlineArrayAttribute é aplicado a um tipo.
Versão introduzida
.NET 9 Preview 6
Tipo de alteração interruptiva
Esta é uma alteração comportamental.
Motivo da alteração
O comportamento atual é incorreto tanto para determinar a igualdade quanto para computar o código hash, e os usuários são levados a uma falsa sensação de correção ao chamar essas funções.
Ação recomendada
Os autores de bibliotecas devem implementar Equals(Object) e GetHashCode() em todos os tipos marcados com InlineArrayAttribute.