Compartir a través de


En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

A diferencia de la CultureInfo clase , la RegionInfo clase no representa las preferencias del usuario y no depende del idioma o la referencia cultural del usuario.

Nombres asociados a un objeto RegionInfo

El nombre de un RegionInfo objeto es uno de los códigos de dos letras definidos en ISO 3166 para el país o región. El caso no es significativo. Name, TwoLetterISORegionName y ThreeLetterISORegionName devuelven los códigos adecuados en mayúsculas. Para obtener la lista actual de RegionInfo nombres, consulte ISO 3166: Códigos de país.

Creación de instancias de un objeto RegionInfo

Para crear una instancia de un objeto RegionInfo, pasar al constructor RegionInfo(String) un nombre de región de dos letras, como "US" para Estados Unidos, o el nombre de una cultura específica, como "en-US" para inglés (Estados Unidos). Sin embargo, se recomienda usar un nombre de referencia cultural específico en lugar de un nombre de región de dos letras, ya que un RegionInfo objeto no es completamente independiente del lenguaje. Varias RegionInfo propiedades, como DisplayName, NativeNamey CurrencyNativeName, dependen de los nombres de referencia cultural.

En el ejemplo siguiente se muestra la diferencia en los valores de propiedad de RegionInfo tres objetos que representan Bélgica. El primero se instancia a partir de un nombre de región (BE), mientras que el segundo y el tercero se instancian a partir de nombres culturales (fr-BE para francés de Bélgica y nl-BE para neerlandés de Bélgica, respectivamente). En el ejemplo se usa la reflexión para recuperar los valores de propiedad 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

En escenarios como los siguientes, use nombres de referencia cultural en lugar de nombres de país o región al crear una instancia de un RegionInfo objeto:

  • Cuando el nombre del idioma es de importancia principal. Por ejemplo, para el nombre de la es-US cultura, probablemente querrá que la aplicación muestre "Estados Unidos" en lugar de "United States". El uso del nombre de país o región (US) solo produce "Estados Unidos" independientemente del idioma, de manera que se debe trabajar con el nombre de la cultura en su lugar.

  • Cuando se deben tener en cuenta las diferencias de guion. Por ejemplo, el país o región AZ se ocupa de las culturas azerbaiyanas que tienen los nombres az-Latn-AZ y az-Cyrl-AZ, y los scripts latinos y cirílicos pueden ser muy diferentes para este país o región.

  • Cuando el mantenimiento de detalle es importante. Los valores devueltos por los miembros RegionInfo pueden diferir en función de si se ha creado una instancia del objeto RegionInfo mediante un nombre de referencia cultural o un nombre de región. Por ejemplo, en la tabla siguiente se enumeran las diferencias en los valores devueltos cuando se instancia un objeto RegionInfo mediante la región "US", la referencia cultural "en-US" y "es-US".

    Miembro "ESTADOS UNIDOS" "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