Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I metodi String.ToUpper, String.ToLower, Char.ToUpper e Char.ToLower forniscono sovraccarichi che non accettano parametri. Per impostazione predefinita, questi overload senza parametri eseguono trasformazioni di maiuscole/minuscole in base al valore di CultureInfo.CurrentCulture. Questo produce risultati sensibili a maiuscole e minuscole che possono variare in base alle impostazioni culturali. Per chiarire se si desidera che le variazioni di maiuscole e minuscole siano dipendenti dalle impostazioni cultura o non sensibili alla cultura, è consigliabile usare gli overload di questi metodi che richiedono di specificare in modo esplicito un parametro culture. Per le modifiche maiuscole/minuscole sensibili al contesto culturale, specificare CultureInfo.CurrentCulture per il parametro culture. Per le modifiche di maiuscole/minuscole indipendentemente dalle impostazioni della cultura, specificare CultureInfo.InvariantCulture per il parametro culture.
Spesso, le stringhe vengono convertite in un caso standard per facilitare la ricerca in un secondo momento. Quando le stringhe vengono usate in questo modo, è necessario specificare CultureInfo.InvariantCulture per il culture parametro, perché il valore di Thread.CurrentCulture può potenzialmente cambiare tra il momento in cui viene modificato il caso e l'ora in cui si verifica la ricerca.
Se una decisione di sicurezza si basa su un'operazione di modifica del caso, l'operazione deve essere indipendente dalle impostazioni cultura per assicurarsi che il risultato non sia interessato dal valore di CultureInfo.CurrentCulture. Vedere la sezione "Confronti di stringhe che usano la cultura corrente" dell'articolo Procedure consigliate per l'uso delle stringhe per un esempio che illustra come le operazioni di confronto di stringhe sensibili alla cultura possono produrre risultati incoerenti.
String.ToUpper e String.ToLower
Per maggiore chiarezza nel codice, è consigliabile usare sempre gli overload dei metodi String.ToUpper e String.ToLower che consentono di specificare esplicitamente le impostazioni cultura. Ad esempio, il codice seguente esegue una ricerca dell'identificatore. L'operazione key.ToLower è sensibile alle impostazioni locali per default, ma questo comportamento non è chiaro leggendo il codice.
Esempio
Shared Function LookupKey(key As String) As Object
Return internalHashtable(key.ToLower())
End Function
static object LookupKey(string key)
{
return internalHashtable[key.ToLower()];
}
Se si desidera che l'operazione key.ToLower sia indipendente dalle impostazioni cultura, modificare l'esempio precedente come indicato di seguito per usare CultureInfo.InvariantCulture in modo esplicito quando si modifica il 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)];
}
Char.ToUpper e Char.ToLower
Anche se i metodi Char.ToUpper e Char.ToLower hanno le stesse caratteristiche dei metodi String.ToUpper e String.ToLower, le uniche culture interessate sono quelle turca (Türkiye) e azera (latino, Azerbaigian). Si tratta delle uniche due culture con differenze di maiuscole e minuscole su un singolo carattere. Per altri dettagli su questo mapping di maiuscole e minuscole univoco, vedere la sezione "Casing" nella documentazione della String classe. Per maggiore chiarezza del codice e per garantire risultati coerenti, è consigliabile usare sempre gli overload di questi metodi che accettano un CultureInfo parametro.