CA1309: usar StringComparison ordinal
TypeName |
UseOrdinalStringComparison |
CheckId |
CA1309 |
Categoria |
Microsoft.Globalization |
Alteração Significativa |
Sem quebra |
Causa
Uma operação de comparação de cadeia de caracteres que é nonlinguistic não define o parâmetro de StringComparison a Ordinal ou a OrdinalIgnoreCase.
Descrição da Regra
Muitos operações de cadeia, a maioria de String.Compare importante e os métodos de String.Equals , fornecem agora uma sobrecarga que aceita um valor de enumeração StringComparision como um parâmetro.
Quando você especifica StringComparison.Ordinal ou StringComparison.OrdinalIgnoreCase, a comparação de cadeia de caracteres será nonlinguistic.Ou seja, os recursos que são específicos do idioma natural é ignorado quando as decisões de comparação são feitas.Isso significa que as decisões são baseadas em comparações simples de byte e ignoram o uso de maiúsculas e minúsculas ou as tabelas da equivalência que são parametrizadas a cultura.No resultado, definindo explicitamente o parâmetro a StringComparison.Ordinal ou a StringComparison.OrdinalIgnoreCase, seu código geralmente ganha a velocidade, aumenta a exatidão, e se torna mais confiável.
Como Corrigir Violações
Para corrigir uma violação desta regra, altere o método de comparação de cadeia de caracteres a sobrecarga que aceita a enumeração de StringComparison como um parâmetro, e especifique Ordinal ou OrdinalIgnoreCase.Por exemplo, altere String.Compare(str1, str2) a String.Compare(str1, str2, StringComparison.Ordinal).
Quando Suprimir Alertas
É seguro suprimir um aviso desta regra quando a biblioteca ou o aplicativo são destinados para um público local delimitada ou quando a semântica da cultura atual deve ser usada.
Consulte também
Referência
CA1307: especificar StringComparison