Delen via


Waarschuwing ca2014: gebruik stackalloc niet in lussen

.NET Code Analyzer-regel CA2014 is standaard ingeschakeld vanaf .NET 5. Er wordt een buildwaarschuwing gegenereerd voor elke C#-code waarbij een stackalloc-expressie binnen een lus wordt gebruikt.

Beschrijving wijzigen

Vanaf .NET 5 bevat de .NET SDK .NET-broncodeanalyses. Verschillende van deze regels zijn standaard ingeschakeld, waaronder CA2014. Als uw project code bevat die deze regel schendt en is geconfigureerd om waarschuwingen als fouten te behandelen, kan deze wijziging de build verbreken.

Regel CA2014 zoekt naar C#-code waarbij een stackalloc-expressie binnen een lus wordt gebruikt. stackalloc wijst geheugen toe vanuit het huidige stackframe. Het geheugen wordt pas vrijgegeven als de huidige methodeaanroep terugkeert, wat kan leiden tot stack-overloop. Omdat u stack-overloop-uitzonderingen niet kunt ondervangen, wordt de app beëindigd in het geval van stack-overloop.

Geïntroduceerde versie

5,0

  • Vermijd het gebruik van stackalloc in lussen. Wijs het geheugenblok buiten de lus toe en gebruik dit opnieuw binnen de lus. Zie CA2014 voor meer informatie.

  • Als u codeanalyse volledig wilt uitschakelen, stelt u deze in EnableNETAnalyzersfalse uw projectbestand in. Zie EnableNETAnalyzers voor meer informatie.

Betreffende API's

Kan niet worden gedetecteerd via API-analyse.