CA2244: Jangan duplikasi inisialisasi elemen yang diindeks
Properti | Nilai |
---|---|
ID Aturan | CA2244 |
Judul | Jangan duplikat inisialisasi elemen terindeks |
Golongan | Penggunaan |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | Sebagai saran |
Penyebab
Penginisialisasi objek memiliki lebih dari satu penginisialisasi elemen terindeks dengan indeks konstanta yang sama. Semua kecuali penginisialisasi terakhir yang berlebihan.
Deskripsi aturan
Penginisialisasi objek memungkinkan Anda menetapkan nilai ke bidang atau properti objek yang dapat diakses pada waktu pembuatan tanpa harus memanggil konstruktor diikuti oleh baris pernyataan penugasan.
Penginisialisasi elemen terindeks dalam penginisialisasi objek harus menginisialisasi elemen unik. Indeks duplikat akan menimpa inisialisasi elemen sebelumnya.
Cara memperbaiki pelanggaran
Untuk memperbaiki pelanggaran, hapus semua inisialisasi elemen terindeks redundan yang ditimpa oleh salah satu inisialisasi elemen berikutnya. Misalnya, cuplikan kode berikut menunjukkan pelanggaran aturan dan beberapa potensi perbaikan:
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[1] = 1, // CA2244
[2] = 2,
[1] = 3
};
}
}
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[2] = 2,
[1] = 3
};
}
}
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[1] = 1,
[2] = 2
};
}
}
Tip
Perbaikan kode tersedia untuk aturan ini di Visual Studio. Untuk menggunakannya, posisikan kursor pada pelanggaran dan tekan Ctrl+. (titik). Pilih Hapus inisialisasi elemen redundan dari daftar opsi yang disajikan.
Kapan harus menekan peringatan
Jangan menekan pelanggaran untuk aturan ini.