CA1847: Usare String.Contains(char) anziché String.Contains(string) con caratteri singoli
Proprietà | valore |
---|---|
ID regola | CA1847 |
Title | Usare String.Contains(char) anziché String.Contains(string) con caratteri singoli |
Categoria | Prestazioni |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitato per impostazione predefinita in .NET 8 | Come suggerimento |
Causa
String.Contains(string)
viene utilizzato quando String.Contains(char)
è disponibile.
Descrizione regola
Quando si cerca un singolo carattere, String.Contains(char)
offre prestazioni migliori rispetto a String.Contains(string)
.
Come correggere le violazioni
In generale, la regola viene risolta semplicemente usando un valore letterale char anziché un valore letterale stringa.
public bool ContainsLetterI()
{
var testString = "I am a test string.";
return testString.Contains("I");
}
Public Function ContainsLetterI() As Boolean
Dim testString As String = "I am a test string."
Return testString.Contains("I")
End Function
Questo codice può essere modificato per usare invece un valore letterale char.
public bool ContainsLetterI()
{
var testString = "I am a test string.";
return testString.Contains('I');
}
Public Function ContainsLetterI() As Boolean
Dim testString As String = "I am a test string."
Return testString.Contains("I"c)
End Function
Quando eliminare gli avvisi
Eliminare una violazione di questa regola se non si è interessati all'impatto sulle prestazioni della chiamata di ricerca in questione.
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 CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847
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.CA1847.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.