Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
| Propriedade | valor |
|---|---|
| ID da regra | CA1310 |
| Título | Especifique StringComparison para correção de precisão |
| Categoria | Globalização |
| A correção causa interrupção ou não | Ininterrupto |
| Habilitado por padrão no .NET 10 | Não |
| Línguas aplicáveis | C# e Visual Basic |
Motivo
Uma operação de comparação de cadeia de caracteres usa uma sobrecarga de método sem definir o parâmetro StringComparison e recorre à comparação de cadeia de caracteres específica da cultura por padrão. Portanto, seu comportamento variará com base nas configurações de localidade do usuário atual.
Descrição da regra
Um método de comparação de cadeia de caracteres que usa a comparação de cadeia de caracteres específica da cultura por padrão pode ter um comportamento de tempo de execução potencialmente não intencional que não corresponde à intenção do usuário. Recomenda-se usar a sobrecarga com o parâmetro StringComparison para garantir a correção e a clareza de intenção.
Esta regra sinaliza métodos de comparação de cadeia de caracteres que usam o valor específico StringComparison da cultura por padrão. Para obter mais informações, consulte Comparações de string que usam a cultura atual.
Nota
Se pretender ver violações para todos os métodos de comparação de strings, independentemente da comparação de string padrão usada pelo método, use CA1307: Especificar StringComparison para maior clareza.
Como corrigir violações
Para corrigir uma violação desta regra, altere os métodos de comparação de cadeias de caracteres para versões sobrecarregadas 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
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 CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1310.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.