Bagikan melalui


CA1805: Jangan inisialisasi yang tidak perlu

Properti Nilai
ID Aturan CA1805
Judul Jangan menginisialisasi secara tidak perlu
Golongan Performa
Perbaikan bersifat disruptif atau non-disruptif Non-disruptif
Diaktifkan secara default di .NET 8 Tidak

Penyebab

Bidang kelas secara eksplisit diinisialisasi ke nilai default jenis bidang tersebut.

Deskripsi aturan

Runtime .NET menginisialisasi semua bidang jenis referensi ke nilai defaultnya sebelum menjalankan konstruktor. Dalam kebanyakan kasus, secara eksplisit menginisialisasi bidang ke nilai defaultnya dalam konstruktor berlebihan, menambahkan biaya pemeliharaan dan berpotensi menurunkan performa (seperti dengan peningkatan ukuran perakitan), dan inisialisasi eksplisit dapat dihapus.

Cara memperbaiki pelanggaran

Dalam kebanyakan kasus, perbaikan yang tepat adalah menghapus inisialisasi yang tidak perlu.

class C
{
    // Violation
    int _value1 = 0;

    // Fixed
    int _value1;
}

Dalam beberapa kasus, menghapus inisialisasi dapat mengakibatkan peringatan CS0649 berikutnya dikeluarkan karena bidang mempertahankan nilai defaultnya selamanya. Dalam kasus seperti itu, perbaikan yang lebih baik mungkin adalah menghapus bidang sepenuhnya atau menggantinya dengan properti:

class C
{
    // Violation
    private static readonly int s_value = 0;

    // Fixed
    private static int Value => 0;
}

Kapan harus menekan peringatan

Selalu aman untuk menekan peringatan, karena peringatan hanya menyoroti kode dan pekerjaan yang berpotensi tidak perlu yang mungkin dihindari.

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 CA1805
// The code that's violating the rule is on this line.
#pragma warning restore CA1805

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.

[*.{cs,vb}]
dotnet_diagnostic.CA1805.severity = none

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Baca juga