Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| 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 10 | 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.ToUpper() senza String.ToLower() 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.