Membuat bidang struct bisa-tulis (IDE0064)
Properti | Nilai |
---|---|
ID Aturan | IDE0064 |
Judul | Membuat bidang struct bisa-tulis |
Kategori | CodeQuality |
Subkategori | Aturan bahasa (preferensi pengubah) |
Bahasa yang berlaku | C# |
Gambaran Umum
Aturan ini mendeteksi struct yang berisi satu atau beberapa readonly
bidang dan juga berisi penugasan ke this
luar konstruktor. Aturan merekomendasikan konversi readonly
bidang menjadi non-baca saja, yaitu bisa-tulis. Menandai bidang readonly
struct seperti itu dapat menyebabkan perilaku tak terduga, karena nilai yang ditetapkan ke bidang dapat berubah ketika this
ditetapkan di luar konstruktor.
Opsi
Aturan ini tidak memiliki opsi gaya kode terkait.
Contoh
// Code with violations
struct MyStruct
{
public readonly int Value;
public MyStruct(int value)
{
Value = value;
}
public void Test()
{
this = new MyStruct(5);
}
}
// Fixed code
struct MyStruct
{
public int Value;
public MyStruct(int value)
{
Value = value;
}
public void Test()
{
this = new MyStruct(5);
}
}
Menyembunyikan peringatan
Jika Anda hanya ingin menekan satu pelanggaran, tambahkan direktif pra-prosesor ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturan.
#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none
Untuk menonaktifkan seluruh kategori aturan ini, atur tingkat keparahan untuk kategori ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Lihat 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