Megosztás a következőn keresztül:


CA1311: Kulturális környezet megadása vagy invariáns verzió használata

Tulajdonság Érték
Szabályazonosító CA1311
Cím Kulturális környezet megadása vagy invariáns verzió használata
Kategória Globalizáció
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Nem

Ok

A program meghívja a String.ToUpper() kultúrát, vagy String.ToLower() anélkül.

Szabály leírása

Adjon meg egy kultúrát, vagy használjon invariáns kultúrát, hogy elkerülje az aktuális kultúrától való implicit függőséget híváskor ToUpper vagy ToLower. Az invariáns kultúra használata konzisztens eredményeket eredményez, függetlenül az alkalmazás kultúrájától.

Szabálysértések kijavítása

A paraméter nélküli String.ToUpper() vagy metódusok meghívása helyett hívja meg ToUpper(CultureInfo) vagy ToUpperInvariant()hívja meg vagyToLower(CultureInfo).ToLowerInvariant()String.ToLower()

Példa

A következő kódrészlet a CA1311 szabály megsértését mutatja be:

string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()

A következő kódrészlet kijavítja a szabálysértést:

string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()

Mikor kell letiltani a figyelmeztetéseket?

Ha biztos benne, hogy Thread.CurrentCulture ez soha nem változik, nyugodtan el lehet tiltani a szabály figyelmeztetését.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

#pragma warning disable CA1311
// The code that's violating the rule is on this line.
#pragma warning restore CA1311

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések letiltása.

Kapcsolódó információk