CA1311: specificare una cultura o usare una versione invariante
Proprietà | valore |
---|---|
ID regola | CA1311 |
Title | Specificare le impostazioni cultura o usare una versione invariante |
Categoria | Globalizzazione |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitato per impostazione predefinita in .NET 9 | No |
Causa
Viene effettuata una chiamata a String.ToUpper() o String.ToLower() senza specificare impostazioni cultura.
Descrizione regola
Specificare impostazioni cultura o usare impostazioni cultura invarianti per evitare dipendenze implicite dalle impostazioni cultura correnti quando si chiama ToUpper
o ToLower
. L'uso di impostazioni cultura invarianti produce risultati coerenti indipendentemente dalle impostazioni cultura di un'applicazione.
Come correggere le violazioni
Anziché chiamare i metodi o String.ToLower() senza String.ToUpper() parametri, chiamare ToUpper(CultureInfo) o ToUpperInvariant()o ToLower(CultureInfo) ToLowerInvariant().
Esempio
Il frammento di codice seguente mostra una violazione della regola CA1311:
string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()
Il frammento di codice seguente corregge la violazione:
string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()
Quando eliminare gli avvisi
È possibile eliminare un avviso da questa regola se si è certi che Thread.CurrentCulture non cambieranno mai.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA1311
// The code that's violating the rule is on this line.
#pragma warning restore CA1311
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none
su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.CA1311.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.