RegionInfo classe

Observação

Este artigo fornece observações complementares à documentação de referência para esta API.

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

Nomes associados a um objeto RegionInfo

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

Instanciar um objeto RegionInfo

Para instanciar um RegionInfo objeto, passe ao RegionInfo(String) construtor 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 RegionInfo objeto não é completamente independente do idioma. Várias RegionInfo propriedades, incluindo DisplayName, NativeName, e 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 a partir de um nome de região (BE) apenas, enquanto o segundo e o terceiro são instanciados a partir de 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 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 os seguintes, use nomes de cultura em vez de nomes de país/região ao instanciar um RegionInfo objeto:

  • Quando o nome da língua é de importância primordial. Por exemplo, para o nome da es-US cultura, você provavelmente desejará que seu aplicativo exiba "Estados Unidos" em vez de "Estados Unidos". Usar apenas o nome do país/região (US) produz "Estados Unidos" independentemente do idioma, 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 as escritas latina e cirílica podem ser muito diferentes para este país/região.

  • Quando a manutenção do detalhe é importante. Os valores retornados pelos RegionInfo membros podem diferir 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 de retorno 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