Bagikan melalui


Membuat bidang struct bisa ditulis (IDE0064)

Harta benda Nilai
ID Aturan IDE0064
Judul Membuat bidang struct dapat ditulis
Kategori CodeQuality
Subkategori Aturan bahasa (preferensi pengubah)
Bahasa yang relevan C#

Ikhtisar

Aturan ini mendeteksi struktur yang berisi satu atau beberapa bidang readonly dan juga berisi penugasan untuk this di luar konstruktor. Aturan merekomendasikan untuk mengonversi bidang readonly menjadi non-baca saja, yaitu dapat ditulis. Menandai bidang struct tersebut sebagai readonly dapat menyebabkan perilaku yang tidak terduga, karena nilai yang ditetapkan ke bidang dapat berubah saat this ditetapkan di luar konstruktor.

Pilihan

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 arahan prapemrosesan ke file sumber Anda untuk menonaktifkan aturan tersebut kemudian mengaktifkannya kembali.

#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 menekan peringatan analisis kode.

Lihat juga