CA1310: Especificar StringComparison para garantir a exatidão
Property | Valor |
---|---|
ID da regra | CA1310 |
Título | Especificar StringComparison para garantir a exatidão |
Categoria | Globalização |
Correção interruptiva ou sem interrupção | Sem interrupção |
Habilitado por padrão no .NET 8 | Não |
Causa
Uma operação de comparação de cadeia de caracteres usa uma sobrecarga de método que não define um parâmetro StringComparison e usa, por padrão, uma comparação de cadeia de caracteres específica da cultura. Portanto, seu comportamento variará de acordo com as configurações de localidade do usuário atual.
Descrição da regra
Um método de comparação de cadeia de caracteres que usa, por padrão, a comparação de cadeia de caracteres específica da cultura pode ter um comportamento de runtime potencialmente não intencional que não corresponda à intenção do usuário. É recomendável que você use a sobrecarga com o parâmetro StringComparison para garantir a exatidão e a clareza da intenção.
Essa regra sinaliza métodos de comparação de cadeia de caracteres que usam o valor StringComparison específico da cultura por padrão. Para obter mais informações, consulte Comparações de cadeia de caracteres que usam a cultura atual.
Observação
Se você quiser ver violações para todos os métodos de comparação de cadeia de caracteres, independentemente da comparação de cadeia de caracteres padrão usada pelo método, use CA1307: especificar StringComparison para garantir maior clareza.
Como corrigir violações
Para corrigir uma violação dessa regra, altere os métodos de comparação de cadeia de caracteres para sobrecargas que aceitem a enumeração StringComparison como parâmetro. Por exemplo, altere String.Compare(str1, str2)
para String.Compare(str1, str2, StringComparison.Ordinal)
.
Quando suprimir avisos
É seguro suprimir um aviso dessa regra quando a biblioteca ou o aplicativo não se destina a ser localizado.
Suprimir um aviso
Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.
#pragma warning disable CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1310.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.