CA1311: Tentukan budaya atau gunakan versi invarian
Properti | Nilai |
---|---|
ID Aturan | CA1311 |
Judul | Tentukan budaya atau gunakan versi yang invarian |
Golongan | Globalisasi |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | No |
Penyebab
Panggilan dilakukan ke String.ToUpper() atau String.ToLower() tanpa menentukan budaya.
Deskripsi aturan
Tentukan budaya atau gunakan budaya yang invarian untuk menghindari dependensi implisit pada budaya saat ini saat memanggil ToUpper
atau ToLower
. Menggunakan budaya yang invarian menghasilkan hasil yang konsisten terlepas dari budaya aplikasi.
Cara memperbaiki pelanggaran
Alih-alih memanggil parameterless String.ToUpper() atau String.ToLower() metode, panggil ToUpper(CultureInfo) atau ToUpperInvariant(), atau ToLower(CultureInfo) atau ToLowerInvariant().
Contoh
Cuplikan kode berikut menunjukkan pelanggaran aturan CA1311:
string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()
Cuplikan kode berikut memperbaiki pelanggaran:
string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()
Kapan harus menekan peringatan
Aman untuk menekan peringatan dari aturan ini jika Anda yakin bahwa Thread.CurrentCulture tidak akan pernah berubah.
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 CA1311
// The code that's violating the rule is on this line.
#pragma warning restore CA1311
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA1311.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.