CA1847: Gebruik String.Contains(char) in plaats van String.Contains(string) met één tekens
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA1847 |
Titel | Gebruik String.Contains(char) in plaats van String.Contains(string) met één tekens |
Categorie | Prestaties |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Als suggestie |
Oorzaak
String.Contains(string)
wordt gebruikt wanneer String.Contains(char)
deze beschikbaar is.
Beschrijving van regel
Wanneer u zoekt naar één teken, String.Contains(char)
biedt u betere prestaties dan String.Contains(string)
.
Schendingen oplossen
In het algemeen wordt de regel eenvoudig opgelost met behulp van een letterlijke tekenreeks in plaats van een letterlijke tekenreeks.
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
Deze code kan worden gewijzigd om in plaats daarvan een letterlijke teken te gebruiken.
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
Wanneer waarschuwingen onderdrukken
Onderdrukt een schending van deze regel als u zich geen zorgen maakt over de invloed van de prestaties van de betreffende zoekopdracht.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.