CA2244: Jangan duplikasi inisialisasi elemen yang diindeks

Properti Nilai
ID Aturan CA2244
Judul Jangan duplikat inisialisasi elemen terindeks
Kategori Penggunaan
Perbaikan bersifat merusak atau tidak merusak Tidak terputus
Diaktifkan secara default di .NET 10 Sebagai saran
Bahasa yang berlaku C# dan Visual Basic

Penyebab

Penginisialisasi objek memiliki lebih dari satu penginisialisasi elemen terindeks dengan indeks konstanta yang sama. Semua penginisialisasi kecuali yang terakhir adalah 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 dapat 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
        };
    }
}

Tips

Perbaikan kode tersedia untuk aturan ini di Visual Studio. Untuk menggunakannya, posisikan kursor pada pelanggaran dan tekan Ctrl+. (titik). Pilih Hapus inisialisator elemen redundan dari daftar opsi yang ditampilkan.

Perbaikan kode untuk CA2244 - Hapus penginisialisasi elemen redundan

Kapan harus menekan peringatan

Jangan menyembunyikan pelanggaran untuk aturan ini.

Lihat juga