Freigeben über


Warnung CA2014: Verwenden Sie stackalloc nicht in Schleifen.

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

Änderungsbeschreibung

Ab .NET 5 umfasst das .NET SDK .NET-Quellcodeanalysen. Mehrere dieser Regeln, einschließlich CA2014, werden standardmäßig aktiviert. Wenn Ihr Projekt Code enthält, der gegen diese Regel verstößt und dafür konfiguriert ist, Warnungen als Fehler zu interpretieren, könnte es sich hierbei um einen Breaking Change für Ihr Build handeln.

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

Eingeführt in 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.

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

Betroffene APIs

Nicht über API-Analyse erkennbar.