Bagikan melalui


CA1309: Gunakan Perbandingan String ordinal

Properti Nilai
ID Aturan CA1309
Judul Menggunakan StringComparison ordinal
Golongan Globalisasi
Perbaikan bersifat disruptif atau non-disruptif Non-disruptif
Diaktifkan secara default di .NET 9 No

Penyebab

Operasi perbandingan string yang nonbahasa tidak mengatur StringComparison parameter ke Ordinal atau OrdinalIgnoreCase.

Deskripsi aturan

Banyak operasi string, yang paling penting System.String.Compare adalah metode dan System.String.Equals , sekarang memberikan kelebihan beban yang menerima System.StringComparison nilai enumerasi sebagai parameter.

Saat Anda menentukan StringComparison.Ordinal atau StringComparison.OrdinalIgnoreCase, perbandingan string adalah non-linguistik. Artinya, fitur yang khusus untuk bahasa alami diabaikan ketika keputusan perbandingan dibuat. Mengabaikan fitur bahasa alami berarti keputusan didasarkan pada perbandingan byte sederhana dan bukan pada tabel casing atau kesetaraan yang diparameterkan oleh budaya. Akibatnya, dengan secara eksplisit mengatur parameter ke StringComparison.Ordinal atau StringComparison.OrdinalIgnoreCase, kode Anda sering mendapatkan kecepatan, meningkatkan kebenaran, dan menjadi lebih andal.

Cara memperbaiki pelanggaran

Untuk memperbaiki pelanggaran aturan ini, ubah metode perbandingan string menjadi kelebihan beban yang menerima System.StringComparison enumerasi sebagai parameter, dan tentukan Ordinal atau OrdinalIgnoreCase. Misalnya, ubah String.Compare(str1, str2) menjadi String.Compare(str1, str2, StringComparison.Ordinal).

Kapan harus menekan peringatan

Aman untuk menekan peringatan dari aturan ini ketika pustaka atau aplikasi ditujukan untuk audiens lokal terbatas, atau ketika semantik budaya saat ini harus digunakan.

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 CA1309
// The code that's violating the rule is on this line.
#pragma warning restore CA1309

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.

[*.{cs,vb}]
dotnet_diagnostic.CA1309.severity = none

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Lihat juga