Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschap | Waarde |
|---|---|
| Regel-id | CA1847 |
| Titel | Gebruik String.Contains(char) in plaats van String.Contains(string) met één tekens |
| Categorie | Prestaties |
| Fix kan brekend of niet-brekend zijn | Niet-brekend |
| Standaard ingeschakeld in .NET 10 | Als suggestie |
| Toepasselijke talen | C# en Visual Basic |
Oorzaak
String.Contains(string) wordt gebruikt wanneer String.Contains(char) beschikbaar is.
Beschrijving van regel
Wanneer u zoekt naar één teken, String.Contains(char) biedt u betere prestaties dan String.Contains(string).
Hoe schendingen op te lossen
In het algemeen wordt de regel eenvoudig opgelost door een letterlijk teken in plaats van een letterlijke tekenreeks 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")
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 voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.