Valor predeterminado Equals()
y GetHashCode()
se inicia para los tipos marcados con InlineArrayAttribute
El comportamiento predeterminado de Equals(Object) y GetHashCode() en los tipos marcados con InlineArrayAttribute ahora es iniciar un NotSupportedException. Los autores de bibliotecas deben invalidar estos dos métodos si se espera que no se produzcan.
Comportamiento anterior
Anteriormente, las implementaciones predeterminadas solo usaban el campo de marcador de posición ref
al calcular la igualdad o el código hash.
Comportamiento nuevo
A partir de .NET 9, siempre se produce un NotSupportedException a partir de las implementaciones predeterminadas de Equals(Object) y GetHashCode() cuando se aplica InlineArrayAttribute a un tipo.
Versión introducida
.NET 9 Versión preliminar 6
Tipo de cambio importante
Este es un cambio de funcionamiento.
Motivo del cambio
El comportamiento actual es incorrecto para determinar la igualdad y calcular el código hash, y los usuarios se llevan a una falsa sensación de corrección al llamar a estas funciones.
Acción recomendada
Los autores de bibliotecas deben implementar Equals(Object) y GetHashCode() en todos los tipos marcados con InlineArrayAttribute.