CA1310: Especificar StringComparison para mayor corrección

Propiedad Value
Identificador de la regla CA1310
Título Especificar StringComparison para mayor corrección
Categoría Globalización
La corrección es problemática o no problemática Poco problemático
Habilitado de forma predeterminada en .NET 8 No

Causa

Una operación de comparación de cadenas usa una sobrecarga de método que no establece un parámetro StringComparison y utiliza de forma predeterminada la comparación de cadenas específica de la referencia cultural. Por lo tanto, su comportamiento variará en función de la configuración regional del usuario actual.

Descripción de la regla

Un método de comparación de cadenas que utiliza la comparación de cadenas específica de la referencia cultural de forma predeterminada puede tener un comportamiento en tiempo de ejecución potencialmente involuntario que no coincida con la intención del usuario. Se recomienda usar la sobrecarga con el parámetro StringComparison para la corrección y la claridad de la intención.

Esta regla marca los métodos de comparación de cadenas que usan el valor específico de referencia cultural de StringComparison de forma predeterminada. Para obtener más información, vea Comparaciones de cadenas que usan la referencia cultural actual.

Nota

Si quiere ver las infracciones de todos los métodos de comparación de cadenas, independientemente de la comparación de cadenas predeterminada usada por el método, use CA1307: Specify StringComparison for clarity (Especificar StringComparison para mayor claridad) en su lugar.

Cómo corregir infracciones

Para corregir una infracción de esta regla, cambie los métodos de comparación de cadenas a las sobrecargas que aceptan la enumeración StringComparison como parámetro. Por ejemplo, cambia String.Compare(str1, str2) a String.Compare(str1, str2, StringComparison.Ordinal).

Cuándo suprimir las advertencias

Es seguro suprimir una advertencia de esta regla cuando la biblioteca o la aplicación no están diseñadas para ser localizadas.

Supresión de una advertencia

Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.

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

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none del archivo de configuración.

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

Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.

Vea también