Condividi tramite


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.

Vedi anche