Compartir a través de


CA1307: Especificar StringComparison para mayor claridad

Propiedad Value
Identificador de la regla CA1307
Título Especificar StringComparison para mayor claridad
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 utiliza una sobrecarga de método que no establece un parámetro StringComparison.

Descripción de la regla

Muchas operaciones de comparación de cadenas proporcionan una sobrecarga que acepta un valor de enumeración StringComparison como parámetro.

Siempre que existe una sobrecarga que tome un parámetro StringComparison, se debe usar en lugar de una sobrecarga que no tome este parámetro. Al establecer este parámetro explícitamente, el código suele ser más claro y más fácil de mantener. Para obtener más información, vea Especificar comparaciones de cadenas explícitamente.

Nota

Esta regla no tiene en cuenta el valor predeterminado StringComparison utilizado por el método de comparación. Por lo tanto, puede ser potencialmente ruidoso para los métodos que usan la comparación de cadenas Ordinal de forma predeterminada y el usuario diseñado para usar este modo de comparación predeterminado. Si solo quiere ver las infracciones de los métodos de cadena conocidos que usan la comparación de cadenas específica de la referencia cultural de forma predeterminada, use CA1310: Specify StringComparison for correctness(Especificar StringComparison para mayor corrección) 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 str1.IndexOf(ch1) a str1.IndexOf(ch1, StringComparison.Ordinal).

Cuándo suprimir las advertencias

Es seguro suprimir una advertencia de esta regla cuando no es necesaria la claridad de la intención. Por ejemplo, es posible que el código de prueba o el código no traducible no lo requieran.

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

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.CA1307.severity = none

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

Vea también