Partager via


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.

Les créateurs de bibliothèques doivent implémenter à la fois Equals(Object) et GetHashCode() sur tous les types marqués avec InlineArrayAttribute.

API affectées