Esecuzione di modifiche di maiuscole e minuscole indipendenti dalla lingua
Aggiornamento: novembre 2007
I metodi String.ToUpper, String.ToLower, Char.ToUpper e Char.ToLower forniscono overload che non accettano parametri. Per impostazione predefinita, gli overload privi di parametri eseguono modifiche delle lettere maiuscole e minuscole in base al valore di CultureInfo.CurrentCulture. Si ottengono così risultati con distinzione tra maiuscole e minuscole che possono variare in base alle impostazioni cultura Per indicare chiaramente se si desidera eseguire modifiche delle lettere maiuscole e minuscole dipendenti o indipendenti dalle impostazioni cultura, è opportuno utilizzare gli overload di questi metodi che richiedono la specifica esplicita di un parametro culture. Per modifiche delle lettere maiuscole e minuscole dipendenti dalle impostazioni cultura, specificare CultureInfo.CurrentCulture per il parametro culture. Per modifiche delle lettere maiuscole e minuscole indipendenti dalle impostazioni cultura, specificare CultureInfo.InvariantCulture per il parametro culture.
Le stringhe vengono spesso convertite in una combinazione di maiuscole e minuscole standard per semplificare successivamente la ricerca. Quando le stringhe vengono utilizzate in questo modo, per il parametro culture è opportuno specificare CultureInfo.InvariantCulture, poiché è possibile che vengano apportate modifiche al valore di Thread.CurrentCulture tra il momento in cui vengono modificate le lettere maiuscole e minuscole e il momento in cui viene eseguita la ricerca.
Se una decisione relativa alla sicurezza è basata sul risultato di una modifica di maiuscole e minuscole, è necessario che l'operazione sia indipendente dalle impostazioni cultura affinché il risultato non sia influenzato dal valore di CultureInfo.CurrentCulture. Per un esempio in cui viene illustrato come le operazioni su stringhe dipendenti dalle impostazioni cultura possono provocare risultati incoerenti, vedere Regole di ordinamento e mapping di maiuscole e minuscole personalizzati.
Utilizzo dei metodi String.ToUpper e String.ToLower
Per una maggiore chiarezza del codice, è consigliabile utilizzare sempre overload di String.ToUpper e String.ToLower che consentono di specificare in modo esplicito un parametro culture. Nel codice riportato di seguito, ad esempio, viene eseguita una ricerca di identificatori. Per impostazione predefinita, l'operazione key.ToLower è dipendente dalle impostazioni cultura, tuttavia questo comportamento non risulta in modo evidente dalla lettura del 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 rendere l'operazione key.ToLower indipendente dalle impostazioni cultura, è opportuno modificare l'esempio precedente come riportato di seguito, in modo da utilizzare in modo esplicito CultureInfo.InvariantCulture nella modifica delle lettere maiuscole e minuscole.
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)];
}
Utilizzo dei metodi Char.ToUpper e Char.ToLower
Sebbene dispongano delle stesse caratteristiche dei metodi String.ToUpper e String.ToLower, i metodi Char.ToUpper e Char.ToLower influiscono esclusivamente sulle impostazioni cultura "tr-TR", relative alla lingua turca parlata in Turchia, e "az-Latn-AZ", relative alla lingua azera parlata in Azerbaijan (alfabeto latino), poiché costituiscono le uniche due impostazioni cultura con differenze tra lettere maiuscole e minuscole relative a singoli caratteri. Per informazioni dettagliate su questo esclusivo mapping di maiuscole e minuscole, vedere Regole di ordinamento e mapping di maiuscole e minuscole personalizzati. Per una maggiore chiarezza del codice e per avere la garanzia di risultati coerenti, si consiglia di utilizzare sempre gli overload di questi metodi che consentono di specificare in modo esplicito un parametro culture.
Vedere anche
Riferimenti
Altre risorse
Esecuzione di operazioni sulle stringhe indipendenti dalla lingua