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énaaz-Latn-AZ
aaz-Cyrl-AZ
a 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