Upozornění CA2014: Nepoužívejte ve smyčce stackalloc
Pravidlo analyzátoru kódu .NET CA2014 je ve výchozím nastavení povolené od verze .NET 5. Vygeneruje upozornění sestavení pro jakýkoli kód jazyka C#, ve kterém se uvnitř smyčky používá výraz stackalloc .
Změna popisu
Počínaje rozhraním .NET 5 obsahuje sada .NET SDK analyzátory zdrojového kódu .NET. Ve výchozím nastavení je povoleno několik z těchto pravidel, včetně CA2014. Pokud váš projekt obsahuje kód, který porušuje toto pravidlo a je nakonfigurovaný tak, aby zacházel s upozorněními jako s chybami, může tato změna přerušit sestavení.
Pravidlo CA2014 hledá kód jazyka C#, ve kterém se uvnitř smyčky používá výraz stackalloc. stackalloc přiděluje paměť z aktuálního rámce zásobníku. Paměť se nevolá, dokud se nevrátí volání aktuální metody, což může vést k přetečení zásobníku. Protože nemůžete zachytit výjimky přetečení zásobníku, aplikace se ukončí v případě přetečení zásobníku.
Zavedená verze
5,0
Doporučená akce
Nepoužívejte stackalloc uvnitř smyček. Přidělte blok paměti mimo smyčku a znovu ho použijte uvnitř smyčky. Další informace najdete v tématu CA2014.
Pokud chcete analýzu kódu úplně zakázat, nastavte
EnableNETAnalyzers
vfalse
souboru projektu. Další informace naleznete v tématu EnableNETAnalyzers.
Ovlivněná rozhraní API
Nedetekovatelné prostřednictvím analýzy rozhraní API.