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.
CA2251: Používejte
| Vlastnost | Hodnota |
|---|---|
| ID pravidla | CA2251 |
| Název | Použití String.Equals v průběhu String.Compare |
| Kategorie | Využití |
| Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
| Povoleno ve výchozím nastavení v .NET 10 | No |
Příčina
Výsledek volání String.Compare se porovná s nulou.
Popis pravidla
String.Compare je navržený tak, aby vytvořil porovnání celkového pořadí, které lze použít k řazení. Pokud vám záleží jen na tom, zda jsou řetězce rovny, je jasnější a pravděpodobně rychlejší použít ekvivalentní přetížení String.Equals.
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, nahraďte výraz porovnávající výsledek String.Compare s voláním String.Equals.
Example
string leftValue = "...";
string rightValue = "...";
// This code violates the rule.
bool areEqualUsingCompare = string.Compare(leftValue, rightValue, StringComparison.OrdinalIgnoreCase) == 0;
// This code satisfies the rule.
bool areEqualUsingEquals = string.Equals(leftValue, rightValue, StringComparison.OrdinalIgnoreCase);
Kdy potlačit upozornění
Je bezpečné potlačit upozornění z tohoto pravidla.
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 CA2251
// The code that's violating the rule is on this line.
#pragma warning restore CA2251
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.CA2251.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.