CA1307: Especificar StringComparison para garantir a clareza
Property | Valor |
---|---|
ID da regra | CA1307 |
Título | Especificar StringComparison para garantir a clareza |
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.
Descrição da regra
Muitas operações de comparação de cadeias de caracteres fornecem uma sobrecarga que aceita um valor de enumeração StringComparison como parâmetro.
Sempre que existe uma sobrecarga que usa um parâmetro StringComparison, ela deve ser usada em vez de uma sobrecarga que não usa esse parâmetro. Ao definir esse parâmetro explicitamente, o código geralmente fica mais claro e mais fácil de manter. Para obter mais informações, consulte Especificando explicitamente comparações de cadeia de caracteres.
Observação
Esta regra não considera o valor padrão StringComparison usado pelo método de comparação. Portanto, pode ser potencialmente confuso para métodos que usam a comparação de cadeias de caracteres Ordinal
por padrão e o usuário pretendia usar esse modo de comparação padrão.
Se você deseja ver apenas as violações apenas para métodos de cadeia de caracteres conhecidos que usam comparação de cadeias de caracteres específica da cultura por padrão, use CA1310: Especificar StringComparison para correção.
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 str1.IndexOf(ch1)
para str1.IndexOf(ch1, StringComparison.Ordinal)
.
Quando suprimir avisos
É seguro suprimir um aviso dessa regra quando a clareza da intenção não é necessária. Por exemplo, código de teste ou código não localizável pode não exigir isso.
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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307
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.CA1307.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.