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 | CA1307 |
| Název | Zadejte StringComparison, aby nebyly pochyby |
| Kategorie | Globalizace |
| Oprava, která může být destruktivní nebo nedestruktivní | Nezlomitelný |
| Povoleno ve výchozím nastavení v .NET 10 | Ne |
| Příslušné jazyky | C# a Visual Basic |
Příčina
Operace porovnání řetězců používá přetížení metody, která nenastavuje StringComparison parametr.
Popis pravidla
Mnoho operací porovnání řetězců poskytuje přetížení, které přijímá hodnotu výčtu StringComparison jako parametr.
Kdykoli existuje přetížení, které přijímá StringComparison parametr, mělo by být použito místo přetížení, které nepřijímá tento parametr. Explicitním nastavením tohoto parametru je váš kód často jasnější a jednodušší. Další informace naleznete v tématu Určení porovnání řetězců explicitně.
Poznámka:
Toto pravidlo nebere v úvahu výchozí StringComparison hodnotu používanou metodou porovnání. Proto může být pro metody, které ve výchozím nastavení používají Ordinal porovnání řetězců, potenciálně rušivé, pokud uživatel zamýšlel použít tento výchozí porovnávací režim.
Pokud chcete zobrazit pouze porušení známých metod řetězců, které ve výchozím nastavení používají porovnání řetězců specifické pro jazykovou verzi, použijte místo toho CA1310: Zadejte StringComparison kvůli správnosti.
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, změňte metody porovnávání řetězců na přetížené metody, které přijímají výčet StringComparison jako parametr. Například změňte str1.IndexOf(ch1) na str1.IndexOf(ch1, StringComparison.Ordinal).
Kdy potlačit upozornění
Je bezpečné potlačit upozornění z tohoto pravidla v případě, že není vyžadována srozumitelnost záměru. Například testovací kód nebo kód, který není lokalizovatelný, nemusí ho vyžadovat.
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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307
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.CA1307.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.