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.

Vedi anche