แก้ไข

แชร์ผ่าน


CA1310: Specify StringComparison for correctness

Property Value
Rule ID CA1310
Title Specify StringComparison for correctness
Category Globalization
Fix is breaking or non-breaking Non-breaking
Enabled by default in .NET 9 No

Cause

A string comparison operation uses a method overload that does not set a StringComparison parameter and uses culture-specific string comparison by default. Hence, its behavior will vary based on the current user's locale settings.

Rule description

A string comparison method that uses culture-specific string comparison by default can have potentially unintentional runtime behavior that does not match user intent. It is recommended that you use the overload with the StringComparison parameter for correctness and clarity of intent.

This rule flags string comparison methods that use the culture-specific StringComparison value by default. For more information, see String comparisons that use the current culture.

Note

If you want to see violations for all string comparison methods, regardless of the default string comparison used by the method, please use CA1307: Specify StringComparison for clarity instead.

How to fix violations

To fix a violation of this rule, change string comparison methods to overloads that accept the StringComparison enumeration as a parameter. For example, change String.Compare(str1, str2) to String.Compare(str1, str2, StringComparison.Ordinal).

When to suppress warnings

It is safe to suppress a warning from this rule when the library or application is not intended to be localized.

Suppress a warning

If you just want to suppress a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.

#pragma warning disable CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310

To disable the rule for a file, folder, or project, set its severity to none in the configuration file.

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

For more information, see How to suppress code analysis warnings.

See also