CA2014: Jangan gunakan stackalloc dalam perulangan
Properti | Nilai |
---|---|
ID Aturan | CA2014 |
Judul | Jangan gunakan stackalloc dalam perulangan |
Golongan | Keandalan |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 8 | Sebagai peringatan |
Penyebab
Menggunakan ekspresi stackalloc C# di dalam perulangan.
Deskripsi aturan
Ekspresi stackalloc
C# mengalokasikan memori dari bingkai tumpukan saat ini, dan memori tersebut mungkin tidak dirilis hingga panggilan metode saat ini kembali. Jika stackalloc
digunakan dalam perulangan, itu dapat menyebabkan tumpukan meluap karena kebanjiran memori tumpukan.
Cara memperbaiki pelanggaran
Pindahkan ekspresi stackalloc
di luar semua perulangan dalam metode.
Kapan harus menekan peringatan
Mungkin aman untuk menyembunyikan peringatan ketika satu atau beberapa perulangan yang berisi hanya dipanggil dalam jumlah waktu terbatas, sehingga jumlah memori keseluruhan yang dialokasikan di semua operasi stackalloc
diketahui relatif kecil.
Menyembunyikan peringatan
Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.
#pragma warning disable CA2014
// The code that's violating the rule is on this line.
#pragma warning restore CA2014
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA2014.severity = none
Untuk menonaktifkan seluruh kategori aturan ini, atur tingkat keparahan untuk kategori ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Reliability.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk