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 | CA1865-CA1867 |
| Název | Použijte 'string.Method(znak)' místo 'string.Method(string)' pro řetězce s jedním znakem. |
| Kategorie | Výkon |
| Oprava, která může být destruktivní nebo nedestruktivní | Nezlomitelný |
| Povoleno ve výchozím nastavení v .NET 10 | CA1865 – Jako návrh CA1866 – Jako návrh CA1867 – Ne |
| Příslušné jazyky | C# a Visual Basic |
Příčina
string.Method(string) se používá, pokud string.Method(char) byl k dispozici.
Cílové metody string pro tato pravidla:
StartsWithEndsWithIndexOfLastIndexOf
Následující tabulka shrnuje podmínky pro každou z ID příslušných pravidel.
| ID diagnostiky | Popis | Je k dispozici oprava kódu? |
|---|---|---|
| CA1865 | Platí, když se dá bezpečná transformace provést automaticky pomocí opravy kódu. | Ano |
| CA1866 | Platí, když není zadané porovnání. | Ne |
| CA1867 | Platí pro jakékoli jiné porovnání řetězců, které ostatní dvě pravidla nepokrývá. | Ne |
CA1867 je ve výchozím nastavení zakázaná.
Popis pravidla
Přetížení, které přebírá parametr char, funguje lépe než přetížení, které přebírá parametr řetězce.
Jak opravit porušení
Chcete-li opravit porušení, použijte místo přetížení řetězcového parametru přetížení parametru char.
Představte si následující příklad:
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
Tento kód lze změnit tak, aby předával 'I' do StartsWith místo řetězce "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
Kdy potlačit upozornění
Potlačte porušení tohoto pravidla, pokud se nezabýváte dopadem na výkon při volání metody s řetězcem.
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 CA1865 // or CA1866 or CA1867
// The code that's violating the rule is on this line.
#pragma warning restore CA1865 // or CA1866 or CA1867
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.CA1865.severity = none
dotnet_diagnostic.CA1866.severity = none
dotnet_diagnostic.CA1867.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.