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