CA1311: Especificar una referencia cultural o usar una versión invariable

Propiedad Value
Identificador de la regla CA1311
Título Especificar una referencia cultural o usar una versión invariable
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

Se realiza una llamada a String.ToUpper() o String.ToLower() sin especificar una referencia cultural.

Descripción de la regla

Especifique una referencia cultural o use una referencia cultural invariable para evitar la dependencia implícita de la referencia cultural actual al llamar a ToUpper o ToLower. El uso de una referencia cultural invariable produce resultados coherentes independientemente de la referencia cultural de una aplicación.

Cómo corregir infracciones

En lugar de llamar a los métodos String.ToUpper() o String.ToLower() sin parámetros, llame a ToUpper(CultureInfo), ToUpperInvariant(), ToLower(CultureInfo) o ToLowerInvariant().

Ejemplo

El siguiente fragmento de código muestra una infracción de la regla CA1311:

string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()

El siguiente fragmento de código corrige la infracción:

string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()

Cuándo suprimir las advertencias

Es seguro suprimir una advertencia de esta regla si está seguro de que Thread.CurrentCulture nunca va a cambiar.

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

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

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

Consulte también