Sdílet prostřednictvím


Třída RegionInfo

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

CultureInfo Na rozdíl od třídy RegionInfo třída nepředstavuje uživatelské předvolby a nezávisí na jazyce nebo jazykové verzi uživatele.

Názvy přidružené k objektu RegionInfo

Název objektu RegionInfo je jedním z dvoumísmenných kódů definovaných v ISO 3166 pro zemi/oblast. Případ není významný. Vlastnosti Name, TwoLetterISORegionName a ThreeLetterISORegionName vrátí příslušné kódy velkými písmeny. Aktuální seznam RegionInfo názvů najdete v tématu ISO 3166: Kódy zemí.

Vytvoření instance objektu RegionInfo

Chcete-li vytvořit instanci objektu RegionInfo, předáte RegionInfo(String) konstruktoru buď dvoupísmenný kód země, například "US" pro Spojené státy, nebo název konkrétní jazykové verze, například "en-US" pro angličtinu (Spojené státy). Doporučujeme však použít konkrétní název jazykové verze místo dvoupísmenného názvu oblasti, protože RegionInfo objekt není zcela nezávislý na jazyce. Několik RegionInfo vlastností, včetně DisplayName, NativeNamea CurrencyNativeName, závisí na názvech jazykové verze.

Následující příklad ukazuje rozdíl v RegionInfo hodnotách vlastností pro tři objekty, které představují Belgie. První instance se vytvoří pouze z názvu oblasti (BE), zatímco druhá a třetí se vytvoří z názvů jazykové verze (fr-BE pro francouzštinu (Belgie) a nl-BE pro nizozemštinu (Belgie)). Příklad používá reflexi k načtení hodnot vlastností každého RegionInfo objektu.

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

Ve scénářích, jako je například následující, při vytváření instance objektu RegionInfo použijte názvy jazykových verzí místo názvů zemí/oblastí:

  • Pokud je název jazyka primární důležitostí. Například pro es-US název kulturní verze si asi přejete, aby aplikace zobrazovala "Estados Unidos" místo "Spojené státy". Pokud použijete pouze název země/oblasti (US), vždy se zobrazí "Spojené státy" bez ohledu na jazyk, takže byste místo toho měli pracovat s názvem kultury.

  • Pokud je nutné zvážit rozdíly mezi skripty. Například země/oblast AZ se zabývá ázerbájdžánskými kulturami, které mají jména az-Latn-AZ a az-Cyrl-AZa latinka a cyrilice mohou být pro tuto zemi/oblast velmi odlišné.

  • Když je důležitá péče o detaily. Hodnoty členy RegionInfo vrácené se mohou lišit v závislosti na tom, jestli byl RegionInfo objekt vytvořen pomocí názvu kultury nebo regionu. Následující tabulka například uvádí rozdíly v návratových hodnotách, když je objekt RegionInfo vytvořen pomocí regionu USA, kulturyen-USa kulturyes-US.

    Člen "USA" "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