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.

Confira também