Skip to content

Latest commit

 

History

History
71 lines (52 loc) · 3.38 KB

File metadata and controls

71 lines (52 loc) · 3.38 KB
title description ms.date f1_keywords helpviewer_keywords author ms.author
CA1310: Specify StringComparison for correctness (code analysis)
Learn about code analysis rule CA1310: Specify StringComparison for correctness
08/26/2020
CA1310
SpecifyStringComparison
SpecifyStringComparisonForCorrectness
CA1310
SpecifyStringComparison
SpecifyStringComparisonForCorrectness
gewarren
gewarren

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 8 No

Cause

A string comparison operation uses a method overload that does not set a xref:System.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 xref:System.StringComparison parameter for correctness and clarity of intent.

This rule flags string comparison methods that use the culture-specific xref:System.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 xref:System.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