Compartilhar via


Classe RegionInfo

Este artigo fornece comentários complementares à documentação de referência para esta API.

Ao contrário da CultureInfo classe, a RegionInfo classe não representa as preferências do usuário e não depende da cultura ou idioma do usuário.

Nomes associados a um objeto RegionInfo

O nome de um RegionInfo objeto é um dos códigos de duas letras definidos no ISO 3166 para país/região. O caso não é significativo. Name, TwoLetterISORegionName e ThreeLetterISORegionName propriedades retornam os códigos apropriados em letras maiúsculas. Para obter a lista atual de RegionInfo nomes, consulte ISO 3166: Códigos de país.

Instanciar um objeto RegionInfo

Para instanciar um RegionInfo objeto, você passa ao RegionInfo(String) construtor um nome de região de duas letras, como "EUA" 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 RegionInfo objeto não é completamente independente de idioma. Várias RegionInfo propriedades, incluindo DisplayName, NativeNamee CurrencyNativeName, dependem de nomes de cultura.

O exemplo a seguir ilustra a diferença nos RegionInfo valores de propriedade para três objetos que representam a Bélgica. O primeiro é instanciado de um nome de região (BE) somente, enquanto o segundo e o terceiro são instanciados de nomes culturais (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 de propriedade de cada RegionInfo objeto.

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 RegionInfo objeto:

  • Quando o nome do idioma é de importância primária. Por exemplo, para o nome de cultura es-US, você vai querer que seu aplicativo exiba "Estados Unidos" em vez de "United States". Usar o nome do país/região (US) sozinho produz "Estados Unidos" 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 culturas do Azerbaijão que têm os nomes az-Latn-AZ e az-Cyrl-AZ, e os scripts latinos e cirílicos podem ser muito diferentes para este país/região.

  • Quando a manutenção de detalhes é importante. Os valores retornados pelos RegionInfo membros podem ser diferentes dependendo se o RegionInfo objeto 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 RegionInfo objeto é instanciado usando a região "EUA", 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