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ý. Funkce Name, TwoLetterISORegionNamea ThreeLetterISORegionName vlastnosti 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

Pokud chcete vytvořit instanci objektuRegionInfo, předáte RegionInfo(String) konstruktor buď název oblasti se dvěma písmeny, například "USA" pro USA, nebo název konkrétní jazykové verze, například "en-US" pro angličtinu (USA). Doporučujeme ale místo názvu oblasti se dvěma písmeny použít konkrétní název jazykové verze, 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í vytvoří instanci z názvů jazykové verze (fr-BE pro francouzštinu (Belgie) a nl-BE holandš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 jazykové verze budete pravděpodobně chtít, aby aplikace místo "USA" zobrazovala "Estados Unidos". Když použijete název země nebo oblasti (US) samostatně, vrátí se "USA" bez ohledu na jazyk, takže byste měli místo toho pracovat s názvem jazykové verze.

  • 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é.

  • Při údržbě podrobností je důležité. Hodnoty vrácené RegionInfo členy se můžou lišit v závislosti na tom, jestli RegionInfo byl objekt vytvořený instancí pomocí názvu jazykové verze nebo názvu oblasti. Následující tabulka například uvádí rozdíly ve návratových hodnotách, když RegionInfo je objekt vytvořený pomocí oblasti USA, jazykové verze "en-US" a "es-US".

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