Par défaut, Equals()
et GetHashCode()
lèvent une exception pour les types marqués avec InlineArrayAttribute
Le comportement par défaut de Equals(Object) et GetHashCode() sur les types marqués avec InlineArrayAttribute consiste désormais à lever une exception NotSupportedException. Les créateurs de bibliothèques doivent remplacer ces deux méthodes si elles ne doivent pas lever d’exception.
Comportement précédent
Auparavant, les implémentations par défaut utilisaient uniquement le champ d’espace réservé ref
lors du calcul de l’égalité ou du code de hachage.
Nouveau comportement
À compter de .NET 9, une exception NotSupportedException est toujours levée à partir des implémentations par défaut de Equals(Object) et GetHashCode() lorsque InlineArrayAttribute est appliqué à un type.
Version introduite
.NET 9 Preview 6
Type de changement cassant
Ce changement est un changement de comportement.
Raison du changement
Le comportement actuel est incorrect pour déterminer l’égalité et calculer le code de hachage, et les utilisateurs ont une fausse impression d’exactitude quand ils appellent ces fonctions.
Action recommandée
Les créateurs de bibliothèques doivent implémenter à la fois Equals(Object) et GetHashCode() sur tous les types marqués avec InlineArrayAttribute.