Partager via


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.

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.

API affectées