Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Proprietà CultureInfo.InvariantCulture

 

Data di pubblicazione: ottobre 2016

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à

Type: System.Globalization.CultureInfo

Oggetto indipendente dalle impostazioni cultura (non variabile).

Le impostazioni cultura invarianti sono indipendente dalle impostazioni cultura; è associato con la lingua inglese, ma non con qualsiasi paese/area geografica. Specificare le impostazioni cultura invarianti per nome utilizzando una stringa vuota ("") nella chiamata a un CultureInfo metodo di creazione di istanze. CultureInfo.InvariantCulture Recupera inoltre un'istanza delle impostazioni cultura invarianti. E può essere utilizzato in quasi tutti i metodi di System.Globalization dello spazio dei nomi che richiedono una lingua. Gli oggetti restituiti dalle proprietà, ad esempio CompareInfo, DateTimeFormat, e NumberFormat inoltre riflettere il confronto di stringhe e le convenzioni delle impostazioni cultura invarianti di formattazione.

A differenza dei dati dipendenti dalle impostazioni cultura, che sono soggette a modifiche per la personalizzazione dell'utente o per gli aggiornamenti per .NET Framework o il sistema operativo, dati delle impostazioni cultura invarianti sono stabili nel tempo e nelle impostazioni cultura installate e non possono essere personalizzati dagli utenti. In questo modo, le impostazioni cultura invarianti particolarmente utile per le operazioni che richiedono risultati indipendenti dalle impostazioni cultura, ad esempio vengono formattati di formattazione e analisi di operazioni che rendono persistenti i dati, o l'ordinamento operazioni che richiedono che i dati verranno visualizzati in un ordine fisso indipendentemente dalle impostazioni cultura.

È possibile utilizzare le impostazioni cultura invarianti per operazioni su stringhe dipendenti dalle impostazioni cultura che non sono interessati dalle convenzioni delle impostazioni cultura del thread corrente e che siano coerenti in impostazioni cultura. Ad esempio, si consiglia di dati ordinati vengono visualizzati in un ordine fisso o applicare un set standard di convenzioni per le stringhe indipendentemente dalle impostazioni cultura del thread corrente. A tale scopo, si passa il InvariantCulture oggetto a un metodo che dispone di un CultureInfo parametro, ad esempio Compare(String, String, Boolean, CultureInfo) e ToUpper(CultureInfo).

Il InvariantCulture proprietà può essere utilizzata per rendere persistenti i dati in un formato indipendente dalle impostazioni cultura. Questo fornisce un formato noto che non vengono modificati e che può essere utilizzato per serializzare e deserializzare i dati nelle diverse impostazioni cultura. Dopo la deserializzazione, i dati possono essere formattato in modo appropriato in base alle convenzioni culturale dell'utente corrente.

Ad esempio, se si sceglie di rendere persistenti i dati di data e ora in formato stringa, è possibile passare il InvariantCulture dell'oggetto per il DateTime.ToString(String, IFormatProvider) o DateTimeOffset.ToString(IFormatProvider) per creare la stringa ed è possibile passare il InvariantCulture dell'oggetto per il DateTime.Parse(String, IFormatProvider) o DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) metodo per convertire la stringa in un valore di data e ora. Questa tecnica garantisce che la data sottostante e i valori di ora non vengono modificate quando i dati vengono letti o scritti da utenti di culture diverse.

L'esempio seguente usa le impostazioni cultura invarianti per rendere persistente un DateTime valore sotto forma di stringa. Quindi, analizza la stringa e il relativo valore da visualizzare utilizzando le convenzioni di formattazione delle impostazioni cultura tedesco (Germania) e francese (Francia).

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

Se si apportano una decisione relativa alla sicurezza (ad esempio, se si desidera consentire l'accesso a una risorsa di sistema) in base al risultato di un confronto tra stringhe o di una modifica di maiuscole, non utilizzare le impostazioni cultura invarianti. Al contrario, eseguire un confronto ordinale tra maiuscole e minuscole o maiuscole chiamando un metodo che include un StringComparison parametro e fornendo una StringComparison.Ordinal o StringComparison.OrdinalIgnoreCase come argomento. Codice che esegue operazioni sulle stringhe dipendenti dalle impostazioni cultura può causare vulnerabilità della protezione, se viene modificata le impostazioni cultura correnti o se le impostazioni cultura del computer che esegue il codice è diversa dalla lingua utilizzata per testare il codice. Al contrario, un confronto ordinale dipende esclusivamente il valore binario dei caratteri confrontati.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: