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 structs qui ont un champ unique. Les structs de tableaux en ligne étaient conçues pour avoir une limite de taille de 1 mébioctet (Mio). Toutefois, en raison d’un bogue, la limite n’a pas été appliquée pour les 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 pouvez déclarer un struct de tableau inline avec 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 a été déclarée comme Int32.MaxValue + 1 finit par avoir une taille de 1 en raison d’un contournement.

Nouveau comportement

À compter de .NET 9, la limite de taille de 1 Mio est appliquée.

Version introduite

.NET 9 Preview 1

Type de changement cassant

Ce changement est un changement de comportement.

Raison de la modification

Cette modification corrige un bogue dans l’implémentation où la limite de taille n’a pas été appliquée.

Si vous avez du code qui 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