CA1310: Specificare StringComparison per la correttezza
Proprietà | valore |
---|---|
ID regola | CA1310 |
Titolo | Specificare StringComparison per la correttezza |
Categoria | Globalizzazione |
Correzione che causa un'interruzione o un'interruzione | Nessuna interruzione |
Abilitato per impostazione predefinita in .NET 8 | No |
Causa
Un'operazione di confronto tra stringhe usa un overload del metodo che non imposta un StringComparison parametro e usa il confronto di stringhe specifiche delle impostazioni cultura per impostazione predefinita. Di conseguenza, il comportamento varia in base alle impostazioni locali dell'utente corrente.
Descrizione regola
Un metodo di confronto tra stringhe che usa il confronto di stringhe specifiche delle impostazioni cultura per impostazione predefinita può avere un comportamento di runtime potenzialmente non intenzionale che non corrisponde alla finalità dell'utente. È consigliabile usare l'overload con il StringComparison parametro per la correttezza e la chiarezza della finalità.
Questa regola contrassegna i metodi di confronto delle stringhe che usano il valore specifico StringComparison delle impostazioni cultura per impostazione predefinita. Per altre informazioni, vedere Confronti tra stringhe che usano le impostazioni cultura correnti.
Nota
Se si desidera visualizzare le violazioni per tutti i metodi di confronto tra stringhe, indipendentemente dal confronto di stringhe predefinito usato dal metodo , usare INVECE CA1307: specificare StringComparison per maggiore chiarezza .
Come correggere le violazioni
Per correggere una violazione di questa regola, modificare i metodi di confronto delle stringhe in overload che accettano l'enumerazione StringComparison come parametro. Puoi ad esempio modificare String.Compare(str1, str2)
in String.Compare(str1, str2, StringComparison.Ordinal)
.
Quando eliminare gli avvisi
È possibile eliminare un avviso da questa regola quando la libreria o l'applicazione non deve essere localizzata.
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 CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310
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.CA1310.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.