Padrão Equals()
e GetHashCode()
lançamento para tipos marcados com InlineArrayAttribute
O comportamento padrão para Equals(Object) e GetHashCode() em tipos marcados com InlineArrayAttribute agora é lançar um NotSupportedExceptionarquivo . Os autores da biblioteca devem substituir esses dois métodos se não forem lançados.
Comportamento anterior
Anteriormente, as implementações padrão usavam apenas o campo de espaço reservado ref
ao calcular a igualdade ou o código hash.
Novo comportamento
A partir do .NET 9, um NotSupportedException é sempre lançado das implementações padrão para Equals(Object) e GetHashCode() quando InlineArrayAttribute é aplicado a um tipo.
Versão introduzida
.NET 9 Visualização 6
Tipo de mudança de rutura
Esta mudança é uma mudança comportamental.
Razão para a alteração
O comportamento atual é incorreto para determinar a igualdade e calcular 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 da biblioteca devem implementar ambos e Equals(Object) GetHashCode() em todos os tipos marcados com InlineArrayAttribute.