La limite de taille de struct du tableau inclus est appliquée
L’attribut InlineArrayAttribute a été introduit dans .NET 8 pour annoter les types de struct qui ont un champ unique. Les structs de tableau inline étaient destinés à avoir une limite de taille de 1 mébioctet (Mio). Toutefois, en raison d’un bogue, la limite n’a pas été appliquée aux structs de tableau inline qui ont une disposition séquentielle, qui est également la disposition par défaut émise par C#. Cette modification applique la limite de taille.
Comportement précédent
Dans .NET 8, vous pouviez déclarer un struct de tableau inline de n’importe quelle taille positive et non nulle. Dans les cas extrêmes, la taille effective était imprévisible. Par exemple, un struct dont la taille était déclarée comme Int32.MaxValue + 1
finissait par avoir une taille de 1 en raison d’un wrap-around.
Nouveau comportement
À compter de .NET 9, la limite de taille de 1 Mio est appliquée.
Version introduite
.NET 9 Préversion 1
Type de changement cassant
Ce changement est un changement de comportement.
Raison du changement
Cette modification corrige un bogue dans l’implémentation où la limite de taille n’était pas appliquée.
Action recommandée
Si votre code utilise des structs de tableau inline avec des instances très volumineuses qui dépassent la limite, réduisez la taille de ces structs.