CA1307: Especifique StringComparison para maior clareza
Property | valor |
---|---|
ID da regra | CA1307 |
Título | Especifique StringComparison para maior clareza |
Categoria | Globalização |
A correção está quebrando ou não quebrando | Sem quebra |
Habilitado por padrão no .NET 9 | Não |
Motivo
Uma operação de comparação de cadeia de caracteres usa uma sobrecarga de método que não define um StringComparison parâmetro.
Descrição da regra
Muitas operações de comparação de cadeia de caracteres fornecem uma sobrecarga que aceita um StringComparison valor de enumeração como parâmetro.
Sempre que existir uma sobrecarga que tome um StringComparison parâmetro, ele deve ser usado em vez de uma sobrecarga que não aceita esse parâmetro. Ao definir explicitamente esse parâmetro, seu código geralmente fica mais claro e fácil de manter. Para obter mais informações, consulte Especificando comparações de cadeia de caracteres explicitamente.
Nota
Esta regra não considera o valor padrão StringComparison usado pelo método de comparação. Portanto, pode ser potencialmente barulhento para métodos que usam a comparação de Ordinal
cadeia de caracteres por padrão e o usuário pretende usar esse modo de comparação padrão.
Se você quiser ver violações apenas para métodos de cadeia de caracteres conhecidos que usam comparação de cadeia de caracteres específica da cultura por padrão, use CA1310: Especifique 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 aceitam a StringComparison enumeração como um parâmetro. Por exemplo, altere str1.IndexOf(ch1)
para str1.IndexOf(ch1, StringComparison.Ordinal)
.
Quando suprimir avisos
É seguro suprimir uma advertência desta regra quando não é necessária clareza de intenções. Por exemplo, o código de teste ou o código não localizável pode não exigi-lo.
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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1307.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.