Språk
Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| Egenskap | Värde |
|---|---|
| Regel-ID | CA1847 |
| Title | Använd String.Contains(char) i stället för String.Contains(string) med enkla tecken |
| Kategori | Prestanda |
| Korrigeringen är antingen invasiv eller icke-invasiv | Oumbrytbar |
| Aktiverad som standard i .NET 10 | Som förslag |
| Tillämpliga språk | C# och Visual Basic |
Orsak
String.Contains(string) används när String.Contains(char) är tillgängligt.
Regelbeskrivning
När du söker efter ett enda tecken ger String.Contains(char) bättre prestanda än String.Contains(string).
Så här åtgärdar du överträdelser
I allmänhet åtgärdas regeln helt enkelt med hjälp av en teckenliteral i stället för en strängliteral.
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
Den här koden kan ändras så att den använder en teckenliteral i stället.
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
När du ska ignorera varningar
Undertryck en överträdelse av den här regeln om du inte bryr dig om prestandapåverkan av sökanropet i fråga.
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.