Delen via


Inlinematrixgroottelimiet wordt afgedwongen

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

Vorig gedrag

In .NET 8 kunt u een inlinematrixstruct declareren met een positieve, niet-nulgrootte. In extreme gevallen was de effectieve grootte onvoorspelbaar. Bijvoorbeeld een struct waarvan de grootte is gedeclareerd als Int32.MaxValue + 1 uiteindelijk een grootte van 1 als gevolg van terugloop.

Nieuw gedrag

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

Versie geïntroduceerd

.NET 9 Preview 1

Type wijziging die fouten veroorzaken

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 gebruikmaakt van inlinematrixstructs met zeer grote exemplaren die de limiet overschrijden, verkleint u de grootte van deze structs.

Betrokken API's