Delen via


Groottebeperking van inline array-structuren wordt afgedwongen

Het InlineArrayAttribute kenmerk is geïntroduceerd in .NET 8 om aantekeningen te maken bij structtypen die één veld hebben. Inline-arraystructs waren bedoeld met een maximale grootte van 1 mebibyte (MiB). Vanwege een fout werd de limiet echter niet afgedwongen voor inline-arraystructs met een sequentiële indeling, wat de standaardindeling is zoals gegenereerd door C#. Met deze wijziging wordt de groottelimiet afgedwongen.

Vorig gedrag

In .NET 8 kunt u een inline array struct declareren met een positieve, niet-nul grootte. In extreme gevallen was de effectieve grootte onvoorspelbaar. Bijvoorbeeld, een struct waarvan de grootte was gedeclareerd als Int32.MaxValue + 1 had uiteindelijk een grootte van 1 vanwege overslag.

Nieuw gedrag

Vanaf .NET 9 wordt de groottelimiet van 1 MiB afgedwongen.

Geïntroduceerde versie

.NET 9 Preview 1

Type van brekende verandering

Deze wijziging is een gedragswijziging.

Reden voor wijziging

Met deze wijziging wordt een fout opgelost in de implementatie waarbij de groottelimiet niet is afgedwongen.

Als u code hebt die gebruik maakt van inline arraystructuren met zeer grote exemplaren die de limiet overschrijden, verklein dan de grootte van deze structuren.

Betreffende API's