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.