Clase RegionInfo
En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.
A diferencia de la clase CultureInfo, la clase RegionInfo 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 objeto RegionInfo 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. Las propiedades Name, TwoLetterISORegionName, y ThreeLetterISORegionName devuelven los códigos adecuados en mayúsculas. Para obtener la lista actual de nombres RegionInfo, consulte ISO 3166: códigos de país .
Creación de instancias de un objeto RegionInfo
Para crear una instancia de un objetoRegionInfo, pase el constructor RegionInfo(String) un nombre de región de dos letras, como "US" para Estados Unidos o el nombre de una referencia cultural 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 objeto RegionInfo no es completamente independiente del lenguaje. Varias de las RegionInfo propiedades, como DisplayName, NativeName, y CurrencyNativeName, dependen de los nombres de referencia cultural.
En el ejemplo siguiente se muestra la diferencia en los valores de propiedad RegionInfo de tres objetos que representan Bélgica. El primero solo se crea una instancia de un nombre de región (BE
), mientras que el segundo y el tercero se crean instancias de los nombres de referencia cultural (fr-BE
para francés (Bélgica) y nl-BE
para neerlandés (Bélgica), respectivamente). En el ejemplo se usa la reflexión para recuperar los valores de propiedad de cada objetoRegionInfo.
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 objetoRegionInfo:
Cuando el nombre del idioma es de importancia principal. Por ejemplo, para el nombre de la referencia cultural
es-US
, probablemente querrá que la aplicación muestre "Estados Unidos" en lugar de "Norteamérica". El uso del nombre de país o región (US
) solo produce "Estados Unidos" independientemente del idioma, por lo que debe trabajar con el nombre de la referencia cultural en su lugar.Cuando se deben tener en cuenta las diferencias de script. Por ejemplo, el país o región
AZ
se ocupa de las culturas Azerbaiyanas que tienen los nombresaz-Latn-AZ
yaz-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 ha creado una instancia de un objeto RegionInfo mediante la región "US", la referencia cultural "en-US" y la referencia cultural "es-US".
Member "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