Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Vlastnost | Hodnota |
|---|---|
| ID pravidla | CA1847 |
| Název | Použití String.Contains(char) místo String.Contains(string) s jedními znaky |
| Kategorie | Výkon |
| Oprava, která může být destruktivní nebo nedestruktivní | Nezlomitelný |
| Povoleno ve výchozím nastavení v .NET 10 | Jako návrh |
| Příslušné jazyky | C# a Visual Basic |
Příčina
String.Contains(string) se používá, pokud String.Contains(char) je k dispozici.
Popis pravidla
Při hledání jednoho znaku String.Contains(char) nabízí lepší výkon než String.Contains(string).
Jak opravit porušení
Obecně platí, že pravidlo lze jednoduše opravit použitím znakového literálu místo řetězcového literálu.
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
Tento kód lze změnit tak, aby místo toho používal literál typu char.
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
Kdy potlačit upozornění
Můžete potlačit porušení tohoto pravidla, jestliže se vás netýká dopad na výkon konkrétního vyvolání vyhledávání.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.