CA1307: Specificare StringComparison per maggiore chiarezza
Proprietà | valore |
---|---|
ID regola | CA1307 |
Titolo | Specificare StringComparison per la chiarezza |
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.
Descrizione regola
Molte operazioni di confronto di stringhe forniscono un overload che accetta un StringComparison valore di enumerazione come parametro.
Ogni volta che esiste un overload che accetta un StringComparison parametro, deve essere usato anziché un overload che non accetta questo parametro. Impostando in modo esplicito questo parametro, il codice viene spesso reso più chiaro e più semplice da gestire. Per altre informazioni, vedere Specifica di confronti tra stringhe in modo esplicito.
Nota
Questa regola non considera il valore predefinito StringComparison usato dal metodo di confronto. Di conseguenza, può essere potenzialmente rumoroso per i metodi che usano il Ordinal
confronto di stringhe per impostazione predefinita e l'utente intende utilizzare questa modalità di confronto predefinita.
Se si desidera visualizzare solo le violazioni solo per i metodi stringa noti che usano il confronto di stringhe specifiche delle impostazioni cultura per impostazione predefinita, usare CA1310: specificare StringComparison per la correttezza .
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 str1.IndexOf(ch1)
in str1.IndexOf(ch1, StringComparison.Ordinal)
.
Quando eliminare gli avvisi
È sicuro eliminare un avviso da questa regola quando non è necessaria chiarezza della finalità. Ad esempio, il codice di test o il codice non localizzabile potrebbe non richiederlo.
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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307
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.CA1307.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.