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.
CA2251: Usare
| Proprietà | valore |
|---|---|
| ID regola | CA2251 |
| Title | Usare String.Equals anziché String.Compare |
| Categoria | Utilizzo |
| La correzione causa un'interruzione o meno | Non rompente |
| Abilitato per impostazione predefinita in .NET 10 | No |
| Linguaggi applicabili | C# e Visual Basic |
Causa
Il risultato di una chiamata a String.Compare viene confrontato con zero.
Descrizione regola
String.Compare è progettato per produrre un confronto dell'ordine totale che può essere usato per l'ordinamento. Se ti interessa solo verificare se le stringhe sono uguali, è sia più chiaro sia probabilmente più veloce utilizzare un overload equivalente di String.Equals.
Come correggere le violazioni
Per correggere le violazioni di questa regola, sostituire l'espressione confrontando il risultato di String.Compare con una chiamata a String.Equals.
Example
string leftValue = "...";
string rightValue = "...";
// This code violates the rule.
bool areEqualUsingCompare = string.Compare(leftValue, rightValue, StringComparison.OrdinalIgnoreCase) == 0;
// This code satisfies the rule.
bool areEqualUsingEquals = string.Equals(leftValue, rightValue, StringComparison.OrdinalIgnoreCase);
Quando eliminare gli avvisi
È sicuro eliminare gli avvisi da questa regola.
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 CA2251
// The code that's violating the rule is on this line.
#pragma warning restore CA2251
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.CA2251.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.