Freigeben über


Warnung CA2014: Verwenden Sie "Stackalloc" nicht in Schleifen.

Die .NET-Codeanalyseregel CA2014 ist standardmäßig ab .NET 5 aktiviert. Sie erzeugt eine Buildwarnung für jeden C#-Code, in dem ein stackalloc-Ausdruck innerhalb einer Schleife verwendet wird.

Änderungsbeschreibung

Ab .NET 5 enthält das .NET SDK .NET Source Code Analyzers. Einige dieser Regeln sind standardmäßig aktiviert, einschließlich CA2014. Wenn Ihr Projekt Code enthält, der gegen diese Regel verstößt und für die Behandlung von Warnungen als Fehler konfiguriert ist, kann diese Änderung ihren Build unterbrechen.

Die Regel CA2014 sucht nach C#-Code, in dem ein stackalloc-Ausdruck innerhalb einer Schleife verwendet wird. stackalloc weist Speicher aus dem aktuellen Stapelframe zu. Der Speicher wird erst freigegeben, wenn der aktuelle Methodenaufruf zurückgegeben wird, was zu Stapelüberläufen führen kann. Da Ausnahmen von Stapelüberläufen nicht abgefangen werden können, wird die App im Falle eines Stapelüberlaufs beendet.

Eingeführte Version

5.0

  • Verwenden Sie stackalloc nicht innerhalb von Schleifen. Weisen Sie den Speicherblock außerhalb der Schleife zu, und verwenden Sie ihn innerhalb der Schleife wieder. Weitere Informationen finden Sie unter CA2014.

  • Um die Codeanalyse vollständig zu deaktivieren, legen Sie `EnableNETAnalyzers` auf `false` in Ihrer Projektdatei fest. Weitere Informationen finden Sie unter EnableNETAnalyzers.

Betroffene APIs

Kann nicht über API-Analyse erkannt werden.