Viene applicato il limite di dimensioni degli struct della matrice inline
L'attributo InlineArrayAttribute è stato introdotto in .NET 8 per annotare i tipi di struct con un singolo campo. Gli struct di matrice inline hanno un limite di dimensioni pari a 1 MiB. Tuttavia, a causa di un bug, il limite non è stato applicato per gli struct di matrice inline con layout sequenziale, che è anche il layout predefinito generato da C#. Questa modifica applica il limite di dimensioni.
Comportamento precedente
In .NET 8, è possibile dichiarare uno struct di matrice inline con qualsiasi dimensione positiva e diversa da zero. In casi estremi, le dimensioni effettive erano imprevedibili. Ad esempio, uno struct la cui dimensione è stata dichiarata come Int32.MaxValue + 1
, finisce per avere una dimensione pari a 1 a causa del wrapping.
Nuovo comportamento
A partire da .NET 9, viene applicato il limite di dimensioni pari a 1 MiB.
Versione di introduzione
.NET 9 Anteprima 1
Tipo di modifica che causa un'interruzione
Questa è una modifica funzionale.
Motivo della modifica
Questa modifica corregge un bug nell'implementazione in cui il limite di dimensioni non è stato applicato.
Azione consigliata
Se si dispone di codice che usa struct di matrice inline con istanze molto grandi che superano il limite, ridurre le dimensioni di tali struct.
API interessate
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per