Compartilhar via


Executando alterações caso diferenciação de cultura

The String.ToUpper, String.ToLower, Char.ToUpper, e Char.ToLower métodos fornecem sobrecargas que não aceitam nenhum parâmetro. Por padrão, essas sobrecargas sem parâmetros executam caso alterações com base no valor do CultureInfo.CurrentCulture. Isso produz caso-confidenciais resultados podem variar de acordo com cultura.Para torná-lo desmarcar se deseje casos as alterações sensíveis à cultura ou diferenciação de cultura, você deve usar sobrecargas de um desses métodos exigem que você especificar explicitamente um cultura parâmetro.Para sensíveis à cultura caso alterações, especificar CultureInfo.CurrentCulture for the cultura parâmetro.Para diferenciação de cultura caso alterações, especificar CultureInfo.InvariantCulture for the cultura parâmetro.

Com freqüência, as seqüências serão convertidas em um padrão caso habilitar a pesquisa mais fácil mais tarde.Quando as seqüências de caracteres são usadas dessa forma, você deve especificar CultureInfo.InvariantCulture for the cultura parâmetro, pois o valor de Thread.CurrentCulture pode potencialmente alterar entre o momento em que a caso for alterada e a time em que a pesquisa ocorre.

Se uma decisão de segurança se baseia em um caso alterar operação, a operação deve ser diferenciação de cultura para garantir que o resultado não seja afetado pelo valor de CultureInfo.CurrentCulture.See Mapeamentos maiúsculas personalizados e regras de classificação para obter um exemplo que demonstra como sensíveis à cultura seqüência de operações podem produzir resultados divergente.

Usando o string.ToUpper e String.ToLower métodos

Para maior clareza do código, é recomendável que você use sempre sobrecargas do String.ToUpper and String.ToLower métodos que permitem que você especifique um cultura parâmetro explicitamente.Por exemplo, o código a seguir realiza uma pesquisa de identificador.The key.ToLower operação de diferenciação de cultura por padrão, mas esse comportamento não está clara depois de ler o código.

Exemplo

Shared Function LookupKey(key As String) As Object
   Return internalHashtable(key.ToLower())
End Function
static object LookupKey(string key) 
{
    return internalHashtable[key.ToLower()];
}

Se você desejar que o key.ToLower operação seja diferenciação de cultura, você deve alterar o exemplo anterior da seguinte maneira para usar explicitamente a CultureInfo.InvariantCulture ao alterar o caso.

Shared Function LookupKey(key As String) As Object
    Return internalHashtable(key.ToLower(CultureInfo.InvariantCulture))
End Function
static object LookupKey(string key) 
{
    return internalHashtable[key.ToLower(CultureInfo.InvariantCulture)];
}

Usando o Char.ToUpper e Char.ToLower métodos

Embora o Char.ToUpper and Char.ToLower métodos têm sistema autônomo mesmas características sistema autônomo a String.ToUpper and String.ToLower métodos, sistema autônomo culturas apenas afetados são "tr-TR" (Turco na Turquia) e "az-Latn-AZ" (Azeri (Latina), no Azerbaijão).Essas são as culturas apenas duas com diferenças de maiúsculas e minúsculas de caractere único.Para obter mais detalhes sobre esse mapeamento de caso exclusivo, consulte Mapeamentos maiúsculas personalizados e regras de classificação.Para maior clareza do código e garantir resultados consistentes, é recomendável que você use sempre sobrecargas de um desses métodos que permitem que você especificar explicitamente um cultura parâmetro.

Consulte também

Referência

String.ToUpper

String.ToLower

Char.ToUpper

Char.ToLower

Outros recursos

Executando operações diferenciação de cultura de string