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 9-ben | 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.