Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
CA2251: Użyj
| Właściwości | Wartość |
|---|---|
| Identyfikator reguły | CA2251 |
| Tytuł | Użyj String.Equals za pośrednictwem String.Compare |
| Kategoria | Użycie |
| Poprawka łamiąca lub nienaruszająca | Niezgodność |
| Domyślnie włączone na platformie .NET 10 | Nie. |
| Zastosowane języki | C# i Visual Basic |
Przyczyna
Wynik wywołania String.Compare jest porównywany z zerem.
Opis reguły
String.Compare jest przeznaczony do tworzenia porównania całkowitej kolejności, które można użyć do sortowania. Jeśli interesuje Cię tylko to, czy ciągi są równe, użycie równoważnego przeciążenia String.Equals jest zarówno jaśniejsze, jak i prawdopodobnie szybsze.
Jak naprawić naruszenia
Aby naprawić naruszenia tej reguły, zastąp wyrażenie porównujące wynik z String.Compare wywołaniem funkcji 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);
Kiedy pomijać ostrzeżenia
Można bezpiecznie pominąć ostrzeżenia z tej reguły.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable CA2251
// The code that's violating the rule is on this line.
#pragma warning restore CA2251
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA2251.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.