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.