Peringatan CA2014: Jangan gunakan stackalloc dalam perulangan
Aturan penganalisis kode .NET CA2014 diaktifkan, secara default, dimulai di .NET 5. Ini menghasilkan peringatan build untuk kode C# apa pun di mana ekspresi stackalloc digunakan di dalam perulangan.
Deskripsi perubahan
Mulai dari .NET 5, .NET SDK menyertakan penganalisis kode sumber .NET. Beberapa aturan ini diaktifkan, secara default, termasuk CA2014. Jika proyek Anda berisi kode yang melanggar aturan ini dan dikonfigurasi untuk memperlakukan peringatan sebagai kesalahan, perubahan ini dapat merusak build Anda.
Aturan CA2014 mencari kode C# di mana ekspresi stackalloc digunakan di dalam perulangan. stackalloc mengalokasikan memori dari bingkai tumpukan saat ini. Memori tidak dirilis sampai panggilan metode saat ini kembali, yang dapat menyebabkan luapan tumpukan. Karena Anda tidak dapat menangkap pengecualian luapan tumpukan, aplikasi akan berakhir jika terjadi luapan tumpukan.
Versi yang diperkenalkan
5.0
Tindakan yang direkomendasikan
Hindari menggunakan stackalloc di dalam perulangan. Alokasikan blok memori di luar perulangan dan gunakan kembali di dalam perulangan. Untuk informasi selengkapnya, lihat CA2014.
Untuk menonaktifkan analisis kode sepenuhnya, atur
EnableNETAnalyzers
kefalse
dalam file proyek Anda. Untuk informasi selengkapnya, lihat EnableNETAnalyzers.
API yang Terpengaruh
Tidak terdeteksi melalui analisis API.