CA1309: Use o ordinal StringComparison

TypeName

UseOrdinalStringComparison

CheckId

CA1309

<strong>Categoria</strong>

Microsoft.Globalization

Alteração significativa

Não-separável

Causa

Uma operação de comparação de seqüência de caracteres nonlinguistic não define o StringComparison parâmetro a um Ordinal ou OrdinalIgnoreCase.

Descrição da regra

Muitas operações, mais importantes de seqüência de caracteres de StringCompare() e StringEquals() métodos, agora fornecem uma sobrecarga que aceita um StringComparision o valor de enumeração como um parâmetro.

Quando você especificar um StringComparison.Ordinal ou OrdinalIgnoreCase, a comparação de seqüência de caracteres será nonlinguistic. Ou seja, os recursos que são específicos ao idioma natural são ignorados quando a comparação decisões são tomadas. Isso significa que as decisões são baseadas em comparações de byte simples e ignorar maiúsculas e minúsculas ou equivalência tabelas que são parametrizadas por cultura. Como resultado, configurando explicitamente o parâmetro como o StringComparison.Ordinal ou OrdinalIgnoreCase, seu código geralmente ganhar velocidade aumenta a precisão e se torna mais confiável.

Como corrigir violações

Para corrigir uma violação desta regra, alterar o método de comparação de seqüência de caracteres para uma sobrecarga que aceita o System.StringComparison enumeração como um parâmetro e especificar o Ordinal ou OrdinalIgnoreCase. Por exemplo, alterar String.Compare(str1, str2) para String.Compare(str1, str2, StringComparison.Ordinal).

Quando suprimir avisos

É seguro eliminar um aviso esta regra quando a biblioteca ou o aplicativo é destinado para um público local limitado ou a semântica da cultura atual deve ser usada.

Consulte também

Referência

CA1307: Especificar StringComparison

Outros recursos

Avisos de globalização