Bagikan melalui


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