Bagikan melalui


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 8 Tidak

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.

Baca juga