Varning CA2014: Använd inte stackalloc i loopar
.NET-kodanalysregeln CA2014 är aktiverad som standard med början i .NET 5. Den skapar en byggvarning för C#-kod där ett stackalloc-uttryck används i en loop.
Ändra beskrivning
Från och med .NET 5 innehåller .NET SDK .NET-källkodsanalyserare. Flera av dessa regler är aktiverade som standard, inklusive CA2014. Om projektet innehåller kod som bryter mot den här regeln och är konfigurerat för att behandla varningar som fel kan den här ändringen bryta mot bygget.
Regel CA2014 söker efter C#-kod där ett stackalloc-uttryck används i en loop. stackalloc allokerar minne från den aktuella stackramen. Minnet frigörs inte förrän det aktuella metodanropet returnerar, vilket kan leda till stackspill. Eftersom du inte kan fånga stacköverflödesfel avslutas appen vid stackspill.
Version introducerad
5,0
Rekommenderad åtgärd
Undvik att använda stackalloc inuti loopar. Allokera minnesblocket utanför loopen och återanvänd det i loopen. Mer information finns i CA2014.
Om du vill inaktivera kodanalys helt anger du
EnableNETAnalyzers
tillfalse
i projektfilen. Mer information finns i EnableNETAnalyzers.
Berörda API:er
Går inte att identifiera via API-analys.