CA1307: Zadejte stringComparison pro srozumitelnost
Vlastnost | Hodnota |
---|---|
ID pravidla | CA1307 |
Název | Zadejte StringComparison, aby nebyly pochyby |
Kategorie | Globalizace |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 9 | No |
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řebírá StringComparison parametr, měla by být použita místo přetížení, které nepřebírají 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ů, hlučné a uživatel, který má 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 pro správnost .
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, změňte metody porovnání řetězců na přetížení, které přijímají StringComparison výčet 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.