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 | CA1858 |
| Titel | StartsWith gebruiken in plaats van IndexOf |
| 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.IndexOf wordt aangeroepen en het resultaat wordt vergeleken met nul.
Beschrijving van regel
Het is efficiënter en duidelijker om aan te roepen String.StartsWith dan om het resultaat aan te roepen String.IndexOf en te vergelijken met nul om te bepalen of een tekenreeks begint met een bepaald voorvoegsel.
IndexOf doorzoekt de hele tekenreeks, terwijl StartsWith alleen aan het begin van de tekenreeks wordt vergeleken.
Hoe schendingen op te lossen
Vervang de aanroep naar String.IndexOf door een aanroep op String.StartsWith.
Voorbeeld
In het volgende codefragment ziet u een schending van CA1858:
bool M(string s)
{
return s.IndexOf("abc") == 0;
}
Function M(s As String) As Boolean
Return s.IndexOf("abc") = 0
End Function
Met het volgende codefragment wordt de schending opgelost:
bool M(string s)
{
return s.StartsWith("abc");
}
Function M(s As String) As Boolean
Return s.StartsWith("abc")
End Function
Wanneer waarschuwingen onderdrukken
Het is veilig om deze waarschuwing te onderdrukken als de prestaties geen probleem zijn.
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 CA1858
// The code that's violating the rule is on this line.
#pragma warning restore CA1858
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.CA1858.severity = none
Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.