Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Proprietà CultureInfo.InvariantCulture

Ottiene l'oggetto CultureInfo indipendente dalle impostazioni cultura.

Spazio dei nomi:  System.Globalization
Assembly:  mscorlib (in mscorlib.dll)
public static CultureInfo InvariantCulture { get; }

Valore proprietà

Tipo: System.Globalization.CultureInfo
Oggetto indipendente dalle impostazioni cultura (tipo invariante).

La lingua inglese è indipendente dalle impostazioni cultura, è associata alla lingua inglese non con alcun paese. Specificare la lingua inglese per nome utilizzando una stringa vuota ("") nella chiamata a un metodo di creazione di istanze CultureInfo. CultureInfo.InvariantCulture recupera anche un'istanza della lingua inglese. Può essere utilizzato in qualsiasi metodo nello spazio dei nomi System.Globalization che richiedono impostazioni cultura. Gli oggetti restituiti dalle proprietà come CompareInfo, DateTimeFormate NumberFormat anche riflettono il confronto di stringhe e le convenzioni di formattazione della lingua inglese.

A differenza dei dati dalle impostazioni cultura, soggetti a modifiche di personalizzazione utente o dagli aggiornamenti a .NET Framework o al sistema operativo, i dati della lingua inglese sono stabili nel tempo e alle impostazioni cultura installate e non possono essere personalizzati dagli utenti. In questo modo la lingua inglese particolarmente utile per le operazioni che richiedono risultati indipendenti dalle impostazioni cultura, ad esempio la formattazione e le operazioni di analisi persistenti i dati formattati, o l'ordinamento e ordinare operazioni che richiedono che i dati visualizzati in un ordine fisso indipendentemente dalle impostazioni cultura.

Operazioni su stringhe

È possibile utilizzare la lingua inglese per le operazioni sulle stringhe dipendenti dalle impostazioni cultura che non sono interessate dalle convenzioni delle impostazioni cultura del thread corrente e coerenti tra le impostazioni cultura. Ad esempio, è possibile dati ordinati per visualizzare in un ordine fisso o per applicare un insieme standard delle convenzioni sulla combinazione di maiuscole e minuscole per le stringhe indipendentemente dalle impostazioni cultura del thread corrente. A tale scopo, si passa l'oggetto InvariantCulture a un metodo con un parametro CultureInfo, come Compare(String, String, Boolean, CultureInfo) e ToUpper(CultureInfo).

Archiviazione dei dati

La proprietà InvariantCulture può essere utilizzata per rendere persistenti i dati in un formato indipendente dalle impostazioni cultura. Ciò fornisce un formato noto invariabile e che può essere utilizzato per serializzare e deserializzare i dati tramite le impostazioni cultura. Dopo che i dati sono deserializzati, possono essere formattati in modo appropriato in base alle convenzioni culturali dell'utente corrente.

Ad esempio, se si sceglie di mantenere le informazioni di data e ora in formato stringa, è possibile passare l'oggetto InvariantCulture al metodo DateTimeOffset.ToString(IFormatProvider) o DateTime.ToString(String, IFormatProvider) per creare la stringa e passare l'oggetto InvariantCulture al metodo DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) o DateTime.Parse(String, IFormatProvider) per convertire la stringa in un valore di data e ora. In questo modo i valori sottostanti di data e ora non modificano quando i dati vengono letti o scritti da utenti con impostazioni cultura diverse.

Nell'esempio seguente viene utilizzata la lingua inglese per mantenere un valore DateTime come stringa. Quindi analizza la stringa e il valore viene visualizzato utilizzando le convenzioni di formattazione delle impostazioni cultura francesi (Francia) e tedesco (Germania).


using System;
using System.IO;
using System.Globalization;

public class Example 
{
   public static void Main() 
   {
      // Persist the date and time data.
      StreamWriter sw = new StreamWriter(@".\DateData.dat");

      // Create a DateTime value.      
      DateTime dtIn = DateTime.Now;
      // Retrieve a CultureInfo object.
      CultureInfo invC = CultureInfo.InvariantCulture;

      // Convert the date to a string and write it to a file.
      sw.WriteLine(dtIn.ToString("r", invC));
      sw.Close();

      // Restore the date and time data.
      StreamReader sr = new StreamReader(@".\DateData.dat");
      String input;
      while ((input = sr.ReadLine()) != null) 
      {
         Console.WriteLine("Stored data: {0}\n" , input);    

         // Parse the stored string.
         DateTime dtOut = DateTime.Parse(input, invC, DateTimeStyles.RoundtripKind);

         // Create a French (France) CultureInfo object.
         CultureInfo frFr = new CultureInfo("fr-FR");
         // Displays the date formatted for the "fr-FR" culture.
         Console.WriteLine("Date formatted for the {0} culture: {1}" , 
                           frFr.Name, dtOut.ToString("f", frFr));

         // Creates a German (Germany) CultureInfo object.
         CultureInfo deDe= new CultureInfo("de-De");
         // Displays the date formatted for the "de-DE" culture.
         Console.WriteLine("Date formatted for {0} culture: {1}" , 
                           deDe.Name, dtOut.ToString("f", deDe));
      }
      sr.Close();
   }
}
// The example displays the following output:
//    Stored data: Tue, 15 May 2012 16:34:16 GMT
//    
//    Date formatted for the fr-FR culture: mardi 15 mai 2012 16:34
//    Date formatted for de-DE culture: Dienstag, 15. Mai 2012 16:34


Decisioni relative alla sicurezza

Se si prevede una decisione relativa alla sicurezza (quale se consentire l'accesso a una risorsa di sistema) basata sul risultato di un confronto di stringhe o di una modifica di maiuscole e minuscole, non utilizzare la lingua inglese. Invece, è necessario eseguire un confronto ordinale distinzione tra maiuscole e minuscole o senza distinzione tra maiuscole e minuscole chiamando un metodo che include un parametro StringComparison e fornire StringComparison.Ordinal o StringComparison.OrdinalIgnoreCase come argomento. Il codice che esegue le operazioni sulle stringhe dipendenti dalle impostazioni cultura può provocare vulnerabilità della sicurezza se le impostazioni cultura correnti vengono modificate o se le impostazioni cultura del computer che esegue il codice differiscono dalle impostazioni cultura utilizzate per verificare il codice. Al contrario, un confronto basato su ordinale dipende unicamente dal valore binario dei caratteri confrontati.

.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.