CA1865-CA1867: gebruik tekenreeks. Method(char)' in plaats van 'tekenreeks'. Method(string)' voor tekenreeks met één teken
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA1865-CA1867 |
Titel | Gebruik tekenreeks. Method(char)' in plaats van 'tekenreeks'. Method(string)' voor tekenreeks met één teken |
Categorie | Prestaties |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | CA1865- Als suggestie CA1866: als suggestie CA1867- Nee |
Oorzaak
string.Method(string)
wordt gebruikt wanneer string.Method(char)
deze beschikbaar was.
De doelmethoden string
voor deze regels:
StartsWith
EndsWith
IndexOf
LastIndexOf
De volgende tabel bevat een overzicht van de voorwaarden voor elk van de gerelateerde regel-id's.
Diagnostische id | Beschrijving | Er is codeoplossing beschikbaar |
---|---|---|
CA1865 | Is van toepassing wanneer een veilige transformatie automatisch kan worden uitgevoerd met een codefix. | Ja |
CA1866 | Is van toepassing wanneer er geen opgegeven vergelijking is. | Nee |
CA1867 | Is van toepassing op een andere tekenreeksvergelijking die niet wordt gedekt door de andere twee regels. | Nee |
CA1867 is standaard uitgeschakeld.
Beschrijving van regel
De overbelasting die een tekenparameter gebruikt, presteert beter dan de overbelasting die een tekenreeksparameter gebruikt.
Schendingen oplossen
Als u een schending wilt oplossen, gebruikt u de overbelasting van de tekenreeksparameter in plaats van de overbelasting van de tekenreeksparameter.
Kijk een naar het volgende voorbeeld:
public bool StartsWithLetterI()
{
var testString = "I am a test string.";
return testString.StartsWith("I");
}
Public Function StartsWithLetterI() As Boolean
Dim testString As String = "I am a test string."
Return testString.StartsWith("I")
End Function
Deze code kan worden gewijzigd om door te geven 'I'
aan StartsWith
in plaats van de tekenreeks "I"
.
public bool StartsWithLetterI()
{
var testString = "I am a test string.";
return testString.StartsWith('I');
}
Public Function StartsWithLetterI() As Boolean
Dim testString As String = "I am a test string."
Return testString.StartsWith("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 het aanroepen van de methode met een tekenreeks.
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 CA1865 // or CA1866 or CA1867
// The code that's violating the rule is on this line.
#pragma warning restore CA1865 // or CA1866 or CA1867
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.CA1865.severity = none
dotnet_diagnostic.CA1866.severity = none
dotnet_diagnostic.CA1867.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.