CA1307: Tentukan Perbandingan String untuk kejelasan
Properti | Nilai |
---|---|
ID Aturan | CA1307 |
Judul | Tentukan StringComparison agar jelas |
Golongan | Globalisasi |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | No |
Penyebab
Operasi perbandingan string menggunakan metode kelebihan beban yang tidak mengatur StringComparison parameter.
Deskripsi aturan
Banyak operasi perbandingan string memberikan kelebihan beban yang menerima StringComparison nilai enumerasi sebagai parameter.
Setiap kali ada kelebihan beban yang mengambil StringComparison parameter, itu harus digunakan alih-alih kelebihan beban yang tidak mengambil parameter ini. Dengan mengatur parameter ini secara eksplisit, kode Anda sering dibuat lebih jelas dan lebih mudah dipertahankan. Untuk informasi selengkapnya, lihat Menentukan perbandingan string secara eksplisit.
Catatan
Aturan ini tidak mempertimbangkan nilai default StringComparison yang digunakan oleh metode perbandingan. Oleh karena itu, mungkin berisik untuk metode yang menggunakan perbandingan Ordinal
string secara default dan pengguna yang dimaksudkan untuk menggunakan mode perbandingan default ini.
Jika Anda hanya ingin melihat pelanggaran hanya untuk metode string yang diketahui yang menggunakan perbandingan string khusus budaya secara default, silakan gunakan CA1310: Tentukan StringComparison untuk kebenaran sebagai gantinya.
Cara memperbaiki pelanggaran
Untuk memperbaiki pelanggaran aturan ini, ubah metode perbandingan string menjadi kelebihan beban yang menerima StringComparison enumerasi sebagai parameter. Misalnya, ubah str1.IndexOf(ch1)
menjadi str1.IndexOf(ch1, StringComparison.Ordinal)
.
Kapan harus menekan peringatan
Aman untuk menekan peringatan dari aturan ini ketika kejelasan niat tidak diperlukan. Misalnya, kode pengujian atau kode yang tidak dapat dilokalkan mungkin tidak memerlukannya.
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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA1307.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.