Classe RegionInfo
Este artigo fornece observações complementares à documentação de referência para essa API.
Ao contrário da classe CultureInfo, a classe RegionInfo não representa as preferências do usuário e não depende da cultura ou do idioma do usuário.
Nomes associados a um objeto RegionInfo
O nome de um objeto RegionInfo é um dos códigos de duas letras definidos na ISO 3166 para país/região. A distinção entre maiúsculas e minúsculas não é relevante. As propriedades Name, TwoLetterISORegionName e ThreeLetterISORegionName retornam os códigos apropriados em letras maiúsculas. Para obter a lista atual dos nomes de RegionInfo, consulte ISO 3166: Códigos de país.
Criar uma instância de um objeto RegionInfo
Para criar uma instância de um objeto RegionInfo, é necessário passar ao construtor RegionInfo(String) um nome de região de duas letras, como "US" para os Estados Unidos, ou o nome de uma cultura específica, como "en-US" para inglês (Estados Unidos). No entanto, recomendamos que você use um nome de cultura específico em vez de um nome de região de duas letras, porque um objeto RegionInfo não é completamente independente do idioma. Várias propriedades RegionInfo, incluindo DisplayName, NativeName e CurrencyNativeName, dependem dos nomes de cultura.
O exemplo a seguir ilustra a diferença nos valores da propriedade RegionInfo para três objetos que representam a Bélgica. O primeiro é instanciado apenas de um nome de região (BE
), enquanto o segundo e o terceiro são instanciados dos nomes de cultura (fr-BE
para francês (Bélgica) e nl-BE
para holandês (Bélgica), respectivamente). O exemplo usa reflexão para recuperar os valores da propriedade de cada objeto RegionInfo.
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
Em cenários como o seguinte, use nomes de cultura em vez de nomes de país/região ao criar uma instância de um objeto RegionInfo:
Quando o nome do idioma for de importância primordial. Por exemplo, para o nome de cultura
es-US
, você provavelmente desejará que seu aplicativo exiba "Estados Unidos" em vez de "United States". Usar o nome do país/região (US
) sozinho produz "United States" independentemente da linguagem, portanto, você deve trabalhar com o nome da cultura.Quando as diferenças de script devem ser consideradas. Por exemplo, o país/região
AZ
lida com as culturas do Azerbaijão que têm os nomesaz-Latn-AZ
eaz-Cyrl-AZ
, e os scripts latinos e cirílicos podem ser muito diferentes para este país/região.Quando a manutenção dos detalhes for importante. Os valores retornados pelos membros RegionInfo podem ser diferentes dependendo se o objeto RegionInfo foi instanciado usando um nome de cultura ou um nome de região. Por exemplo, a tabela a seguir lista as diferenças nos valores retornados quando um objeto RegionInfo é instanciado usando a região "US", a cultura "en-US" e a cultura "es-US".
Membro "EUA" "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