Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O InlineArrayAttribute atributo foi introduzido no .NET 8 para anotar tipos de struct que têm um único campo. Os structs de matriz embutida destinavam-se a ter um limite de tamanho de 1 mebibyte (MiB). No entanto, devido a um bug, o limite não foi aplicado para estruturas de matriz em linha que têm um layout sequencial, que também é o layout padrão, conforme emitido pelo C#. Essa alteração impõe o limite de tamanho.
Comportamento anterior
No .NET 8, você pode declarar um struct de matriz embutida com qualquer tamanho positivo, diferente de zero. Em casos extremos, o tamanho efetivo era imprevisível. Por exemplo, um struct cujo tamanho foi declarado como Int32.MaxValue + 1 acabou tendo um tamanho de 1 devido ao encapsulamento.
Novo comportamento
A partir do .NET 9, o limite de tamanho de 1 MiB é imposto.
Versão introduzida
Versão prévia 1 do .NET 9
Tipo de mudança disruptiva
Esta é uma alteração comportamental.
Motivo da alteração
Essa alteração corrige um bug na implementação em que o limite de tamanho não foi imposto.
Ação recomendada
Se você tiver um código que usa structs de matriz embutida com instâncias muito grandes que excedem o limite, reduza o tamanho desses structs.