Aracılığıyla paylaş


Uyarı CA2014: Döngülerde stackalloc kullanmayın

.NET kod çözümleyici kuralı CA2014 varsayılan olarak .NET 5'te başlayarak etkindir. Bir döngü içinde stackalloc ifadesinin kullanıldığı herhangi bir C# kodu için bir derleme uyarısı üretir.

Açıklama değiştirildi

.NET 5'den başlayarak .NET SDK'sı .NET kaynak kodu çözümleyicilerini içerir. Ca2014 de dahil olmak üzere bu kuralların bazıları varsayılan olarak etkindir. Projeniz bu kuralı ihlal eden bir kod içeriyorsa ve uyarıları hata olarak değerlendirecek şekilde yapılandırılmışsa, bu değişiklik derlemenizi bozabilir.

Kural CA2014, bir stackalloc ifadesinin döngü içinde kullanıldığı C# kodunu arar. stackalloc geçerli yığın çerçevesinden bellek ayırır. Geçerli yöntem çağrısı dönene kadar bellek serbest bırakılmaz ve bu da yığın taşmalarına neden olabilir. Yığın taşması özel durumlarını yakalayamadığınız için, yığın taşması durumunda uygulama sonlandırılır.

Sürüm kullanıma sunulmuştur

5.0

  • Döngülerin içinde stackalloc kullanmaktan kaçının. Bellek bloğunu döngünün dışına ayırın ve döngünün içinde yeniden kullanabilirsiniz. Daha fazla bilgi için bkz . CA2014.

  • Kod analizini tamamen devre dışı bırakmak için proje dosyanızda olarak false ayarlayınEnableNETAnalyzers. Daha fazla bilgi için bkz . EnableNETAnalyzers.

Etkilenen API’ler

API analizi aracılığıyla algılanamaz.