Sdílet prostřednictvím


CA1310: Určení správnosti parametru StringComparison

Vlastnost Hodnota
ID pravidla CA1310
Název Zadejte StringComparison pro správnost
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é nenastaví StringComparison parametr a ve výchozím nastavení používá porovnání řetězců specifických pro jazykovou verzi. Proto se jeho chování bude lišit v závislosti na nastavení národního prostředí aktuálního uživatele.

Popis pravidla

Metoda porovnání řetězců, která ve výchozím nastavení používá porovnání řetězců specifických pro jazykovou verzi, může mít potenciálně neúmyslné chování modulu runtime, které neodpovídá záměru uživatele. Doporučujeme použít přetížení s parametrem StringComparison pro správnost a srozumitelnost záměru.

Toto pravidlo označí metody porovnání řetězců, které ve výchozím nastavení používají hodnotu specifickou pro jazykovou StringComparison verzi. Další informace naleznete v tématu Porovnání řetězců, které používají aktuální jazykovou verzi.

Poznámka:

Pokud chcete zobrazit porušení pro všechny metody porovnání řetězců bez ohledu na výchozí porovnání řetězců používané metodou, použijte místo toho CA1307: Zadejte StringComparison.

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 String.Compare(str1, str2) na String.Compare(str1, str2, StringComparison.Ordinal).

Kdy potlačit upozornění

Je bezpečné potlačit upozornění z tohoto pravidla, pokud knihovna nebo aplikace není určena k lokalizaci.

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 CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310

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.CA1310.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také