Udostępnij za pośrednictwem


CA1310: Określ parametr StringComparison pod kątem poprawności

Właściwości Wartość
Identyfikator reguły CA1310
Tytuł Określ parametr StringComparison w celu zapewnienia poprawności
Kategoria Globalizacja
Poprawka łamiąca lub nienaruszająca Niezgodność
Domyślnie włączone na platformie .NET 10 Nie.
Zastosowane języki C# i Visual Basic

Przyczyna

Operacja porównywania ciągów znaków wykorzystuje przeciążenie metody, które nie ustawia parametru StringComparison i domyślnie używa porównywania ciągów znaków z uwzględnieniem specyfiki kulturowej. W związku z tym jego zachowanie będzie się różnić w zależności od ustawień regionalnych bieżącego użytkownika.

Opis reguły

Metoda porównania ciągów, która domyślnie używa porównania ciągów specyficznych dla kultury, może mieć potencjalnie niezamierzone zachowanie środowiska uruchomieniowego, które nie jest zgodne z intencją użytkownika. Zaleca się użycie przeciążenia z parametrem StringComparison, aby zapewnić poprawność i jasność intencji.

Ta reguła flaguje metody porównywania ciągów, które domyślnie używają wartości StringComparison specyficznej dla kultury. Aby uzyskać więcej informacji, zobacz Porównania ciągów przy użyciu bieżącej kultury.

Uwaga

Jeśli chcesz zobaczyć naruszenia dla wszystkich metod porównywania ciągów, niezależnie od domyślnego porównania ciągów używanego przez metodę, użyj ca1307: Określ parametr StringComparison, aby uzyskać jasność .

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

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć ostrzeżenie z tej reguły, gdy biblioteka lub aplikacja nie ma być zlokalizowana.

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

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

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

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

Zobacz też