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 regra CA2014 do analisador de código .NET está habilitada, por padrão, a partir do .NET 5. Ele produz um aviso de compilação para qualquer código C# onde uma expressão stackalloc é usada dentro de um loop.
Alterar descrição
A partir do .NET 5, o SDK do .NET inclui analisadores de código-fonte do .NET. Várias dessas regras estão habilitadas, por padrão, incluindo a CA2014. Se o seu projeto contém código que viola essa regra e está configurado para tratar avisos como erros, essa alteração pode quebrar sua compilação.
A regra CA2014 procura código C# onde uma expressão stackalloc é usada dentro de um loop. StackAlloc aloca memória do quadro de pilha atual. A memória não é liberada até que a chamada de método atual retorne, o que pode levar a estouros de pilha. Como não é possível capturar exceções de estouro de pilha, a aplicação será encerrada em caso de estouro de pilha.
Versão introduzida
5.0
Ação recomendada
Evite usar stackalloc dentro de loops. Aloque o bloco de memória fora do loop e reutilize-o dentro do loop. Para obter mais informações, consulte CA2014.
Para desativar completamente a análise de código, defina
EnableNETAnalyzerscomofalseno arquivo de projeto. Para obter mais informações, consulte EnableNETAnalyzers.
APIs afetadas
Não detetável através da análise API.