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