Use StringComparison ordinal
TypeName |
UseOrdinalStringComparison |
CheckId |
CA1309 |
Category (Categoria) |
Microsoft.globalização |
Quebrando alterar |
Não separável |
Causa
Uma operação de comparação de cadeia de caracteres de caracteres que é não lingüística não define o StringComparison parâmetro para um Ordinal or OrdinalIgnoreCase.
Descrição da regra
Muitos string operações, mais importantes a Compare() e Equals() métodos, agora fornecem uma sobrecarga que aceita um StringComparision valor de enumeração sistema autônomo um parâmetro.
Quando você especifica um dos StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, a comparação de cadeia de caracteres de caracteres será não lingüística.Ou seja, os recursos que são específicos de linguagem natural são ignorados quando tomar decisões de comparação.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 parametrizadas por cultura.sistema autônomo resultado, configurando explicitamente o parâmetro para um o StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, seu código geralmente ganha velocidade, aumenta a precisão e se torna mais confiável.
Como corrigir violações
Para corrigir uma violação dessa regra, altere o método de comparação de cadeias de caracteres para uma sobrecarga que aceita o StringComparison enumeração sistema autônomo um parâmetro e especifique qualquer uma Ordinal or OrdinalIgnoreCase.Por exemplo: alterar String.Compare(str1, str2) para String.Compare(str1, str2, StringComparison.Ordinal).
Quando suprimir avisos
É seguro eliminar um aviso da regra quando a biblioteca ou aplicativo destina para um audiência local limitado ou quando a semântica da cultura corrente deve ser usada.