CA1847: Verwenden von String.Contains(char) anstelle von String.Contains(string) mit einzelnen Zeichen
Eigenschaft | Wert |
---|---|
Regel-ID | CA1847 |
Titel | Verwenden Von String.Contains(char) anstelle von String.Contains(string) mit einzelnen Zeichen |
Kategorie | Leistung |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Standardmäßig in .NET 8 aktiviert | Als Vorschlag |
Ursache
String.Contains(string)
wird verwendet, wenn String.Contains(char)
verfügbar ist.
Regelbeschreibung
Bei der Suche nach einem einzelnen Zeichen String.Contains(char)
bietet es eine bessere Leistung als String.Contains(string)
.
Behandeln von Verstößen
Im Allgemeinen wird die Regel einfach mithilfe eines char-Literals anstelle eines Zeichenfolgenliterals korrigiert.
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
Dieser Code kann geändert werden, um stattdessen ein char-Literal zu verwenden.
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
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie einen Verstoß gegen diese Regel, wenn Sie sich keine Gedanken über die Auswirkungen auf die Leistung durch den fraglichen Suchaufruf machen.
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.