Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A aplicação explícita Size a uma estrutura decorada com InlineArrayAttribute é ambígua e não é mais suportada no carregador de tipos. Anteriormente, especificar explícito Size resultaria em um comportamento específico da implementação que poderia ou não corresponder às expectativas do usuário.
Versão introduzida
.NET 10
Comportamento anterior
Anteriormente, a especificação Size em uma estrutura decorada com InlineArrayAttribute era permitida, mas resultava em um comportamento específico da implementação que poderia ou não corresponder às expectativas do usuário.
[InlineArray(8)]
[StructLayout(LayoutKind.Explicit, Size=32)]
struct Int8InlineArray
{
private int _value;
}
Novo comportamento
A partir do .NET 10, a especificação Size em uma struct decorada com InlineArrayAttribute não é permitida. Se você tentar criar uma instância de tal struct, obterá um TypeLoadException.
Tipo de mudança disruptiva
Essa alteração pode afetar a compatibilidade binária.
Motivo da mudança
A especificação Size de uma estrutura de matriz embutida é ambígua e qualquer interpretação contradiria a especificação.
Ação recomendada
No caso improvável de precisares especificar o tamanho explícito para o elemento de uma matriz ou para toda a matriz inline, introduz uma struct que encapsule o tipo de elemento ou o tipo de matriz inteira. No layout do contorno, especifique Size conforme necessário.
APIs afetadas
- Tipo carregador