CA1311: Especificar uma cultura ou usar uma versão invariante
Propriedade | valor |
---|---|
ID da regra | CA1311 |
Cargo | Especificar uma cultura ou usar uma versão invariante |
Categoria | Globalização |
A correção está quebrando ou não quebrando | Sem quebra |
Habilitado por padrão no .NET 8 | Não |
Causa
Uma chamada é feita para String.ToUpper() ou String.ToLower() sem especificar uma cultura.
Descrição da regra
Especifique uma cultura ou use uma cultura invariante para evitar a dependência implícita da cultura atual ao chamar ToUpper
ou ToLower
. O uso de uma cultura invariante produz resultados consistentes, independentemente da cultura de um aplicativo.
Como corrigir violações
Em vez de chamar os métodos ou String.ToLower()String.ToUpper() sem parâmetros, chame ToUpper(CultureInfo) ou , ou ToUpperInvariant()ToLower(CultureInfo)ToLowerInvariant().
Exemplo
O trecho de código a seguir mostra uma violação da regra CA1311:
string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()
O trecho de código a seguir corrige a violação:
string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()
Quando suprimir avisos
É seguro suprimir um aviso dessa regra se você tiver certeza de que isso Thread.CurrentCulture nunca mudará.
Suprimir um aviso
Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.
#pragma warning disable CA1311
// The code that's violating the rule is on this line.
#pragma warning restore CA1311
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1311.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.