CultureInfo.InvariantCulture CultureInfo.InvariantCulture CultureInfo.InvariantCulture CultureInfo.InvariantCulture Property

Definition

Ruft das kulturunabhängige (invariante) CultureInfo-Objekt ab.Gets the CultureInfo object that is culture-independent (invariant).

public:
 static property System::Globalization::CultureInfo ^ InvariantCulture { System::Globalization::CultureInfo ^ get(); };
public static System.Globalization.CultureInfo InvariantCulture { get; }
member this.InvariantCulture : System.Globalization.CultureInfo
Public Shared ReadOnly Property InvariantCulture As CultureInfo

Eigenschaftswert

Das Objekt, das die kulturunabhängige (invariante) ist.The object that is culture-independent (invariant).

Hinweise

Die invariante Kultur ist die Culture-insensitive; Es ist verknüpft mit der englischen Sprache jedoch nicht mit der alle Länder/Regionen.The invariant culture is culture-insensitive; it is associated with the English language but not with any country/region. Die invariante Kultur wird anhand des Namens angegeben, mit der eine leere Zeichenfolge ("") im Aufruf von einem CultureInfo Instanziierung-Methode.You specify the invariant culture by name by using an empty string ("") in the call to a CultureInfo instantiation method. CultureInfo.InvariantCulture Außerdem wird eine Instanz der invarianten Kultur abgerufen.CultureInfo.InvariantCulture also retrieves an instance of the invariant culture. Kann verwendet werden, in fast allen Methoden in der System.Globalization Namespace, die eine Kultur erforderlich sind.It can be used in almost any method in the System.Globalization namespace that requires a culture. Die Objekte, die von Eigenschaften zurückgegeben werden beispielsweise CompareInfo, DateTimeFormat, und NumberFormat auch entsprechend den Zeichenfolgenvergleich und Formatierungskonventionen der invarianten Kultur.The objects returned by properties such as CompareInfo, DateTimeFormat, and NumberFormat also reflect the string comparison and formatting conventions of the invariant culture.

Im Gegensatz zu kulturabhängige-Daten, die Anpassung oder Updates für .NET Framework oder dem Betriebssystem unterliegt, invariante Kultur stabil ist, im Laufe der Zeit und verschiedenen installierter Kulturen und kann nicht von Benutzern angepasst werden.Unlike culture-sensitive data, which is subject to change by user customization or by updates to the .NET Framework or the operating system, invariant culture data is stable over time and across installed cultures and cannot be customized by users. Dadurch wird die invariante Kultur besonders nützlich für Vorgänge, die erfordern kulturunabhängige Ergebnisse zu erzielen, z. B. Formatierung und Analyse für Vorgänge, die beibehalten werden formatierte Daten, oder durch Sortieren und Reihenfolge der Vorgänge, die erfordern, dass die Daten angezeigt werden, in einem feste Reihenfolge unabhängig von der Kultur.This makes the invariant culture particularly useful for operations that require culture-independent results, such as formatting and parsing operations that persist formatted data, or sorting and ordering operations that require that data be displayed in a fixed order regardless of culture.

ZeichenfolgenoperationenString Operations

Sie können die invariante Kultur kulturabhängige Zeichenfolgenoperationen, die durch die Konventionen der aktuellen Threadkultur nicht betroffen sind und über Kulturen hinweg konsistent sind.You can use the invariant culture for culture-sensitive string operations that are not affected by the conventions of the current thread culture and that are consistent across cultures. Beispielsweise sollten Sie die sortierte Daten in einer festen Reihenfolge angezeigt werden, oder einen Standardsatz von Groß-/ Kleinschreibungskonventionen in Zeichenfolgen, unabhängig von der aktuellen Threadkultur anwenden.For example, you may want sorted data to appear in a fixed order or apply a standard set of casing conventions to strings regardless of the current thread culture. Hierzu übergeben Sie die InvariantCulture Objekt, das eine Methode mit einer CultureInfo Parameter, wie z. B. Compare(String, String, Boolean, CultureInfo) und ToUpper(CultureInfo).To do this, you pass the InvariantCulture object to a method that has a CultureInfo parameter, such as Compare(String, String, Boolean, CultureInfo) and ToUpper(CultureInfo).

Beibehalten von DatenPersisting Data

Die InvariantCulture Eigenschaft kann verwendet werden, um Daten in einem Format kulturunabhängig dauerhaft zu speichern.The InvariantCulture property can be used to persist data in a culture-independent format. Dies bietet es sich um ein bekanntes Format, die nicht geändert und zum Serialisieren und Deserialisieren von Daten über Kulturen hinweg verwendet werden können.This provides a known format that does not change and that can be used to serialize and deserialize data across cultures. Nachdem die Daten deserialisiert werden, können sie abhängig von Ihrer die kulturellen Konventionen, die von den aktuellen Benutzer formatiert werden.After the data is deserialized, it can be formatted appropriately based on the cultural conventions of the current user.

Beispielsweise, wenn Sie entscheiden, Datum und Uhrzeit-Daten in Form einer Zeichenfolge beibehalten, Sie können übergeben der InvariantCulture -Objekt an der DateTime.ToString(String, IFormatProvider) oder DateTimeOffset.ToString(IFormatProvider) Methode, um die Zeichenfolge, und Sie erstellen kann übergeben der InvariantCulture -Objekt an der DateTime.Parse(String, IFormatProvider) oder DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) Methode, die die Zeichenfolge in ein Datum und Uhrzeit-Wert zu konvertieren.For example, if you choose to persist date and time data in string form, you can pass the InvariantCulture object to the DateTime.ToString(String, IFormatProvider) or DateTimeOffset.ToString(IFormatProvider) method to create the string, and you can pass the InvariantCulture object to the DateTime.Parse(String, IFormatProvider) or DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) method to convert the string back to a date and time value. Dieses Verfahren stellt sicher, dass das zugrunde liegende Datum und die Time-Werten werden nicht geändert werden, wenn die Daten gelesen oder geschrieben werden, von Benutzern aus unterschiedlichen Kulturen.This technique ensures that the underlying date and time values do not change when the data is read or written by users from different cultures.

Im folgenden Beispiel wird die invariante Kultur zum Beibehalten einer DateTime Wert als Zeichenfolge.The following example uses the invariant culture to persist a DateTime value as a string. Anschließend analysiert die Zeichenfolge und zeigt den Wert mithilfe der Formatierungskonventionen der die (Frankreich) Kulturen Französisch und Deutsch (Deutschland).It then parses the string and displays its value by using the formatting conventions of the French (France) and German (Germany) cultures.

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
Imports System.Globalization
Imports System.IO

Module Example
   Public Sub Main()
      ' Persist the date and time data.
      Dim sw As New StreamWriter(".\DateData.dat")
      
      ' Create a DateTime value.      
      Dim dtIn As DateTime = DateTime.Now
      ' Retrieve a CultureInfo object.
      Dim invC As CultureInfo = 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.
      Dim sr As New StreamReader(".\DateData.dat")
      Dim input As String = String.Empty
      Do While sr.Peek() >= 0 
         input = sr.ReadLine()
         Console.WriteLine("Stored data: {0}" , input)    
         Console.WriteLine()
         
         ' Parse the stored string.
         Dim dtOut As DateTime = DateTime.Parse(input, invC, DateTimeStyles.RoundtripKind)

         ' Create a French (France) CultureInfo object.
         Dim frFr As 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.
         Dim deDe As 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))
      Loop
      sr.Close()
   End Sub
End Module
' 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

SicherheitsentscheidungenSecurity Decisions

Wenn Sie eine sicherheitsentscheidung (z. B., ob Zugriff auf eine Systemressource) vornehmen, werden basierend auf das Ergebnis eines Zeichenfolgenvergleichs oder eine Änderung, verwenden Sie nicht die invariante Kultur.If you are making a security decision (such as whether to allow access to a system resource) based on the result of a string comparison or a case change, you should not use the invariant culture. Stattdessen sollten Sie einen ordinalen Vergleich Groß- und Kleinschreibung ausführen, durch Aufrufen einer Methode, die enthält eine StringComparison Parameter und die Angabe StringComparison.Ordinal oder StringComparison.OrdinalIgnoreCase als Argument.Instead, you should perform a case-sensitive or case-insensitive ordinal comparison by calling a method that includes a StringComparison parameter and supplying either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase as an argument. Code, der kulturabhängige Zeichenfolgenoperationen ausführt kann Sicherheitslücken zur Folge haben, wenn die aktuelle Kultur geändert wird, oder wenn die Kultur auf dem Computer, der der Code ausgeführt wird von der Kultur, die verwendet wird unterscheiden, um den Code zu testen.Code that performs culture-sensitive string operations can cause security vulnerabilities if the current culture is changed or if the culture on the computer that is running the code differs from the culture that is used to test the code. Im Gegensatz dazu hängt ein Ordinalvergleich ausschließlich auf den binären Wert der verglichenen Zeichen ein.In contrast, an ordinal comparison depends solely on the binary value of the compared characters.

Gilt für:

Siehe auch