Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les méthodes String.ToUpper, String.ToLower, Char.ToUpper et Char.ToLower fournissent des surcharges qui n’acceptent aucun paramètre. Par défaut, ces surcharges sans paramètres effectuent des modifications de cas en fonction de la valeur du CultureInfo.CurrentCulture. Cela produit des résultats sensibles à la casse qui peuvent varier en fonction de la culture. Pour indiquer clairement si vous souhaitez que les modifications de cas soient sensibles à la culture ou non sensibles à la culture, vous devez utiliser les surcharges de ces méthodes qui vous obligent à spécifier explicitement un culture paramètre. Pour les modifications de casse sensibles à la culture, spécifiez CultureInfo.CurrentCulture pour le culture paramètre. Pour les modifications de casse non sensibles à la culture, spécifiez CultureInfo.InvariantCulture pour le paramètre culture.
Souvent, les chaînes sont converties en cas standard pour faciliter la recherche ultérieure. Lorsque des chaînes sont utilisées de cette façon, vous devez spécifier CultureInfo.InvariantCulture pour le culture paramètre, car la valeur de Thread.CurrentCulture peut changer entre le moment où le cas est modifié et l’heure à laquelle la recherche se produit.
Si une décision de sécurité est basée sur une opération de modification de cas, l’opération doit être non sensible à la culture pour s’assurer que le résultat n’est pas affecté par la valeur de CultureInfo.CurrentCulture. Consultez la section « Comparaisons de chaînes qui utilisent la culture actuelle » de l’article Best Practices for Using Strings pour obtenir un exemple illustrant comment les opérations de chaînes sensibles à la culture peuvent produire des résultats incohérents.
String.ToUpper et String.ToLower
Pour plus de clarté du code, il est toujours recommandé d'utiliser les surcharges des méthodes String.ToUpper et String.ToLower qui vous permettent de spécifier explicitement une culture. Par exemple, le code suivant effectue une recherche d’identificateur. L’opération key.ToLower respecte la culture par défaut, mais ce comportement n’est pas clair de la lecture du code.
Exemple
Shared Function LookupKey(key As String) As Object
Return internalHashtable(key.ToLower())
End Function
static object LookupKey(string key)
{
return internalHashtable[key.ToLower()];
}
Si vous souhaitez que l’opération soit insensible à la key.ToLower culture, modifiez l’exemple précédent comme suit pour utiliser explicitement CultureInfo.InvariantCulture lors de la modification de la casse.
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)];
}
Char.ToUpper et Char.ToLower
Bien que les méthodes Char.ToUpper et Char.ToLower aient les mêmes caractéristiques que les méthodes String.ToUpper et String.ToLower, les seules cultures affectées sont les cultures turques (Türkiye) et azerbaïdjanaises (latin, Azerbaïdjan). Il s’agit des deux seules cultures avec des différences de casse à caractère unique. Pour plus d’informations sur ce mappage de cas unique, consultez la section « Casing » dans la documentation de la classe String. Pour plus de clarté du code et pour garantir des résultats cohérents, il est recommandé d’utiliser toujours les surcharges de ces méthodes qui acceptent un CultureInfo paramètre.