Udostępnij za pośrednictwem


CA1307: Określ parametr StringComparison, aby uzyskać jasność

Właściwości Wartość
Identyfikator reguły CA1307
Tytuł Określ parametr StringComparison w celu zapewnienia jednoznaczności
Kategoria Globalizacja
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone na platformie .NET 9 Nie.

Przyczyna

Operacja porównania ciągów używa przeciążenia metody, które nie ustawia parametru StringComparison .

Opis reguły

Wiele operacji porównywania ciągów zapewnia przeciążenie, które akceptuje StringComparison wartość wyliczenia jako parametr.

Za każdym razem, gdy istnieje przeciążenie, które przyjmuje StringComparison parametr, należy go użyć zamiast przeciążenia, które nie przyjmuje tego parametru. Jawne ustawienie tego parametru powoduje, że kod jest często jaśniejszy i łatwiejszy w obsłudze. Aby uzyskać więcej informacji, zobacz Jawne określanie porównań ciągów.

Uwaga

Ta reguła nie uwzględnia wartości domyślnej StringComparison używanej przez metodę porównania. W związku z tym może to być potencjalnie hałaśliwe dla metod, które domyślnie używają Ordinal porównania ciągów, a użytkownik zamierza użyć tego domyślnego trybu porównania. Jeśli chcesz tylko zobaczyć naruszenia tylko dla znanych metod ciągów, które domyślnie używają porównania ciągów specyficznych dla kultury, użyj ca1310: Określ wartość StringComparison, aby zamiast tego uzyskać poprawność .

Jak naprawić naruszenia

Aby naprawić naruszenie tej reguły, zmień metody porównywania ciągów na przeciążenia, które akceptują StringComparison wyliczenie jako parametr. Na przykład zmień wartość str1.IndexOf(ch1) na str1.IndexOf(ch1, StringComparison.Ordinal).

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć ostrzeżenie z tej reguły, gdy nie jest wymagana jasność intencji. Na przykład kod testowy lub kod nielokalizowalny może nie wymagać go.

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

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_diagnostic.CA1307.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.

Zobacz też