Compartir a través de


Se aplica el límite de tamaño de estructura de matriz insertada

El atributo InlineArrayAttribute se introdujo en .NET 8 para anotar tipos de estructuras que tienen un único campo. Los estructuras de matriz en línea debían tener un límite de tamaño de 1 mebibyte (MiB). Sin embargo, debido a un error, el límite no se aplicaba a las estructuras de matriz en línea que tienen un diseño secuencial, que es también el diseño por defecto emitido por C#. Este cambio refuerza el límite de tamaño.

Comportamiento anterior

En .NET 8, se podía declarar una estructura de matriz en línea con cualquier tamaño positivo distinto de cero. En casos extremos, el tamaño efectivo era impredecible. Por ejemplo, una estructura cuyo tamaño se declaró como Int32.MaxValue + 1 terminó teniendo un tamaño de 1 debido al ajuste.

Comportamiento nuevo

A partir de .NET 9, se aplica el límite de tamaño de 1 MiB.

Versión introducida

Versión preliminar 1 de .NET 9

Tipo de cambio importante

Este es un cambio de comportamiento.

Motivo del cambio

Este cambio corrige un error de implementación por el que no se aplicaba el límite de tamaño.

Si tiene código que utiliza estructuras de matriz en línea con instancias muy grandes que superan el límite, reduzca el tamaño de estas estructuras.

API afectadas