Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het toepassen van expliciete Size op een struct gevoed met InlineArrayAttribute is dubbelzinnig en wordt niet meer ondersteund in de type lader. Voorheen zou het opgeven van expliciete Size resultaten resulteren in implementatiespecifiek gedrag dat al dan niet overeenkomt met gebruikersverwachtingen.
Geïntroduceerde versie
.NET 10
Vorig gedrag
Eerder was het toegestaan om Size op een struct die met InlineArrayAttribute is gedecoreerd op te geven, maar dit resulteerde in implementatiespecifiek gedrag dat mogelijk niet overeenkomt met de verwachtingen van de gebruiker.
[InlineArray(8)]
[StructLayout(LayoutKind.Explicit, Size=32)]
struct Int8InlineArray
{
private int _value;
}
Nieuw gedrag
Vanaf .NET 10 is het specificeren op een struct met Size niet toegestaan. Als u probeert een exemplaar van een dergelijke struct te maken, krijgt u een TypeLoadException.
Type van brekende verandering
Deze wijziging kan van invloed zijn op binaire compatibiliteit.
Reden voor wijziging
Het specificeren van Size voor een inline arraystructuur is dubbelzinnig en elke interpretatie zou in strijd zijn met de specificatie.
Aanbevolen actie
In het onwaarschijnlijke geval dat u een expliciete grootte moet opgeven voor een element van de array of voor de hele inline array, introduceer een struct die het elementtype of het hele arraytype verpakt. Geef Size dienovereenkomstig op in de indeling van de wrapper.
Betreffende API's
- Type laadprogramma