Partilhar via


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

Outros recursos

Avisos de globalização