Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschap | Waarde |
|---|---|
| Regel-id | CA1311 |
| Titel | Een cultuur opgeven of een invariante versie gebruiken |
| Categorie | Globalisatie |
| Oplossing is brekend of niet-brekend | Onbreekbaar |
| Standaard ingeschakeld in .NET 10 | Nee |
| Toepasselijke talen | C# en Visual Basic |
Oorzaak
Er wordt een oproep gedaan naar String.ToUpper() of String.ToLower() zonder een cultuur op te geven.
Beschrijving van regel
Geef een cultuur op of gebruik een invariante cultuur om impliciete afhankelijkheid van de huidige cultuur te voorkomen bij het aanroepen ToUpper of ToLower. Het gebruik van een invariante cultuur levert consistente resultaten op, ongeacht de cultuur van een toepassing.
Hoe schendingen op te lossen
In plaats van de parameterloze String.ToUpper()- of String.ToLower()-methoden aan te roepen, roep ToUpper(CultureInfo) of ToUpperInvariant() aan, of ToLower(CultureInfo) of ToLowerInvariant().
Voorbeeld
Het volgende codefragment toont een schending van regel CA1311:
string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()
Met het volgende codefragment wordt de schending opgelost:
string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()
Wanneer waarschuwingen onderdrukken
Het is veilig om een waarschuwing van deze regel te onderdrukken als u zeker weet dat dit Thread.CurrentCulture nooit zal veranderen.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA1311
// The code that's violating the rule is on this line.
#pragma warning restore CA1311
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA1311.severity = none
Voor meer informatie, zie Codeanalysewaarschuwingen onderdrukken.