CA1043: Gunakan argumen integral atau string untuk pengindeks
Properti | Nilai |
---|---|
ID Aturan | CA1043 |
Judul | Menggunakan argumen integral atau string untuk pengindeks |
Golongan | Desain |
Perbaikan bersifat disruptif atau non-disruptif | Merusak |
Diaktifkan secara default di .NET 9 | No |
Penyebab
Jenis berisi pengindeks yang menggunakan jenis indeks selain System.Int32, , System.Int64System.Object, atau System.String.
Secara default, aturan ini hanya melihat jenis yang terlihat secara eksternal, tetapi ini dapat dikonfigurasi.
Deskripsi aturan
Pengindeks, yaitu, properti terindeks, harus menggunakan tipe bilangan bulat atau string untuk indeks. Jenis ini biasanya digunakan untuk mengindeks struktur data dan meningkatkan kegunaan pustaka. Penggunaan Object jenis harus dibatasi untuk kasus-kasus di mana bilangan bulat atau jenis string tertentu tidak dapat ditentukan pada waktu desain. Jika desain memerlukan jenis lain untuk indeks, pertimbangkan kembali apakah jenis mewakili penyimpanan data logis. Jika tidak mewakili penyimpanan data logis, gunakan metode .
Cara memperbaiki pelanggaran
Untuk memperbaiki pelanggaran aturan ini, ubah indeks menjadi bilangan bulat atau jenis string atau gunakan metode alih-alih pengindeks.
Kapan harus menekan peringatan
Tekan peringatan dari aturan ini hanya setelah dengan hati-hati mempertimbangkan kebutuhan akan pengindeks nonstandar.
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 CA1043
// The code that's violating the rule is on this line.
#pragma warning restore CA1043
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA1043.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Mengonfigurasi kode yang akan dianalisis
Gunakan opsi berikut untuk mengonfigurasi bagian mana dari codebase Anda yang akan menjalankan aturan ini.
Anda dapat mengonfigurasi opsi ini hanya untuk aturan ini, untuk semua aturan yang berlaku untuknya, atau untuk semua aturan dalam kategori ini (Desain) yang berlaku untuk aturan ini. Untuk informasi selengkapnya, lihat Opsi konfigurasi aturan kualitas kode.
Menyertakan permukaan API tertentu
Anda dapat mengonfigurasi bagian basis kode mana yang akan dijalankan aturan ini, berdasarkan aksesibilitasnya, dengan mengatur opsi api_surface. Misalnya, untuk menentukan bahwa aturan hanya boleh dijalankan pada permukaan API non-publik, tambahkan pasangan kunci-nilai berikut ke file .editorconfig di proyek Anda:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Nota
Ganti bagian XXXX
CAXXXX
dengan ID aturan yang berlaku.
Contoh
Contoh berikut menunjukkan pengindeks yang menggunakan Int32 indeks.
string[] Month = new string[] { "Jan", "Feb", "..." };
public string this[int index]
{
get => Month[index];
}
Private month() As String = {"Jan", "Feb", "..."}
Default ReadOnly Property Item(index As Integer) As String
Get
Return month(index)
End Get
End Property