Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
| Properti | Nilai |
|---|---|
| ID Aturan | CA1805 |
| Judul | Jangan menginisialisasi secara tidak perlu |
| Kategori | Performa |
| Perbaikan bersifat merusak atau tidak merusak | Tidak terputus |
| Diaktifkan secara default di .NET 10 | Tidak |
| Bahasa yang berlaku | C# dan Visual Basic |
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, menginisialisasi bidang secara eksplisit ke nilai defaultnya dalam konstruktor adalah berlebihan, menambah biaya pemeliharaan dan berpotensi menurunkan kinerja (seperti dengan meningkatnya ukuran assembly), sehingga 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 muncul karena field tetap memiliki nilai defaultnya secara permanen. 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.