Freigeben über


RegionInfo-Klasse

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Im Gegensatz zur Klasse CultureInfo stellt die Klasse RegionInfo keine Benutzereinstellungen dar und hängt nicht von der Sprache oder Kultur von Benutzer*innen ab.

Einem RegionInfo-Objekt zugeordnete Namen

Der Name eines RegionInfo-Objekts ist einer der in ISO 3166 für Land/Region definierten aus zwei Buchstaben bestehenden Codes. Die Groß-/Kleinbuchschreibung ist nicht von Bedeutung. Die Eigenschaften Name, TwoLetterISORegionName und ThreeLetterISORegionName geben die entsprechenden Codes in Großbuchstaben zurück. Die aktuelle Liste der RegionInfo-Namen finden Sie unter ISO 3166: Landeskennzahlen.

Instanziieren eines RegionInfo-Objekts

Übergeben Sie zum Instanziieren eines RegionInfo-Objekts entweder einen aus zwei Buchstaben bestehenden Regionsnamen (z. B. „US“ für die USA) oder den Namen einer bestimmten Kultur (z. B. „en-US“ für „Englisch (USA)“) an den RegionInfo(String)-Konstruktor. Es wird jedoch empfohlen, einen bestimmten Kulturnamen anstelle eines aus zwei Buchstaben bestehenden Regionsnamens zu verwenden, da ein RegionInfo-Objekt nicht vollständig sprachunabhängig ist. Mehrere RegionInfo-Eigenschaften, einschließlich DisplayName, NativeName und CurrencyNativeName, hängen von Kulturnamen ab.

Im folgenden Beispiel wird der Unterschied bei RegionInfo-Eigenschaftswerten für drei Objekte veranschaulicht, die Belgien darstellen. Der erste wird nur von einem Regionsnamen (BE) instanziiert, während der zweite und dritte von den Kulturnamen (fr-BE für „Französisch (Belgien)“ bzw nl-BE für „Niederländisch (Belgien)“) instanziiert werden. Das Beispiel verwendet Reflexion, um die Eigenschaftswerte der einzelnen RegionInfo-Objekte abzurufen.

using System;
using System.Globalization;
using System.Reflection;

public class Example
{
    public static void Main()
    {
        // Instantiate three Belgian RegionInfo objects.
        RegionInfo BE = new RegionInfo("BE");
        RegionInfo frBE = new RegionInfo("fr-BE");
        RegionInfo nlBE = new RegionInfo("nl-BE");

        RegionInfo[] regions = { BE, frBE, nlBE };
        PropertyInfo[] props = typeof(RegionInfo).GetProperties(BindingFlags.Instance | BindingFlags.Public);

        Console.WriteLine("{0,-30}{1,18}{2,18}{3,18}\n",
                          "RegionInfo Property", "BE", "fr-BE", "nl-BE");
        foreach (var prop in props)
        {
            Console.Write("{0,-30}", prop.Name);
            foreach (var region in regions)
                Console.Write("{0,18}", prop.GetValue(region, null));

            Console.WriteLine();
        }
    }
}
// The example displays the following output:
//    RegionInfo Property                           BE             fr-BE             nl-BE
//
//    Name                                          BE             fr-BE             nl-BE
//    EnglishName                              Belgium           Belgium           Belgium
//    DisplayName                              Belgium           Belgium           Belgium
//    NativeName                                België          Belgique            België
//    TwoLetterISORegionName                        BE                BE                BE
//    ThreeLetterISORegionName                     BEL               BEL               BEL
//    ThreeLetterWindowsRegionName                 BEL               BEL               BEL
//    IsMetric                                    True              True              True
//    GeoId                                         21                21                21
//    CurrencyEnglishName                         Euro              Euro              Euro
//    CurrencyNativeName                          euro              euro              euro
//    CurrencySymbol                                 €                 €                 €
//    ISOCurrencySymbol                            EUR               EUR               EUR

Verwenden Sie in Szenarien wie den folgenden Kulturnamen anstelle von Länder-/Regionsnamen, wenn Sie ein RegionInfo-Objekt instanziieren:

  • Wenn der Sprachname von größter Bedeutung ist. Für den Kulturnamen es-US soll in Ihrer Anwendung wahrscheinlich „Estados Unidos“ anstelle von „USA“ angezeigt werden. Die Verwendung des Länder-/Regionsnamens (US) gibt führt unabhängig von der Sprache „USA“ zurück, sodass Sie stattdessen den Kulturnamen verwenden sollten.

  • Wenn Skriptunterschiede berücksichtigt werden müssen. Der Länder-/Regionsname AZ behandelt beispielsweise aserbaidschanische Kulturen, die die Namen az-Latn-AZ und az-Cyrl-AZ tragen, und die lateinischen und kyrillischen Skripts können für dieses Land/diese Region sehr unterschiedlich sein.

  • Wenn die Pflege von Details wichtig ist. Die von RegionInfo-Membern zurückgegebenen Werte können abhängig davon variieren, ob das RegionInfo-Objekt mithilfe eines Kulturnamens oder eines Regionsnamens instanziiert wurde. In der folgenden Tabelle werden beispielsweise die Unterschiede bei Rückgabewerten aufgelistet, wenn ein RegionInfo-Objekt mithilfe der Region „US“, der Kultur „en-US“ und der Kultur „es-US“ instanziiert wird:

    Member "US" „en-US“ „es-US“
    CurrencyNativeName US Dollar US Dollar Dólar de EE.UU.
    Name US en-US es-US
    NativeName United States United States Estados Unidos
    ToString US en-US es-US