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 8 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.

Viz také