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
Empfohlene Maßnahme
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 auffalse
fest, um die Codeanalyse vollständig zu deaktivieren. Weitere Informationen finden unter EnableNETAnalyzers.
Betroffene APIs
Nicht über API-Analyse erkennbar.