Classe RegionInfo
Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.
Contrairement à la classe CultureInfo, la classe RegionInfo ne représente pas les préférences utilisateur et ne dépend pas de la langue ou de la culture de l’utilisateur.
Noms associés à un objet RegionInfo
Le nom d’un objet RegionInfo est l’un des codes à deux lettres définis dans l’ISO 3166 pour le pays/la région. La casse n’est pas importante. Les propriétés Name, TwoLetterISORegionName et ThreeLetterISORegionName retournent les codes appropriés (en) capitales. Pour obtenir la liste actuelle des noms RegionInfo, consultez ISO 3166 : codes pays.
Instancier un objet RegionInfo
Pour instancier un objet RegionInfo, vous transmettez au constructeur RegionInfo(String) un nom de région à deux lettres, tel que « US » pour les États-Unis, ou le nom d’une culture spécifique, par exemple « en-US » pour l’anglais (États-Unis). Toutefois, nous vous recommandons d’utiliser un nom de culture spécifique au lieu d’un nom de région à deux lettres, car un objet RegionInfo n’est pas complètement indépendant du langage. Plusieurs propriétés RegionInfo, notamment DisplayName, NativeName et CurrencyNativeName, dépendent des noms de culture.
L’exemple suivant explique la différence entre les valeurs de propriété RegionInfo de trois objets représentant la Belgique. Le premier est instancié à partir d’un nom de région (BE
) uniquement, tandis que les deuxième et troisième sont instanciés à partir de noms de culture (fr-BE
pour le français (Belgique) et nl-BE
pour le néerlandais (Belgique), respectivement). L’exemple utilise la réflexion pour récupérer les valeurs de propriété de chaque objet 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
Dans des scénarios tels que les suivants, utilisez des noms de culture au lieu des noms de pays/régions lorsque vous instanciez un objet RegionInfo :
Lorsque le nom de la langue est de première principale. Par exemple, pour le nom de la culture
es-US
, vous voudrez probablement que votre application affiche « Estados Unidos » au lieu de « États-Unis ». L’utilisation du seul nom de pays/région (US
) génère « États-Unis » indépendamment de la langue. Vous devez donc travailler avec le nom de la culture à la place.Lorsque des différences de script doivent être prises en compte. Par exemple, le pays/la région
AZ
traite des cultures azerbaïdjanaises qui ont les nomsaz-Latn-AZ
etaz-Cyrl-AZ
, et les scripts latins et cyrilliques peuvent être très différents pour ce pays/cette région.Lorsque le maintien des détails est important. Les valeurs retournées par les membres RegionInfo peuvent différer selon que l’objet RegionInfo a été instancié en utilisant un nom de culture ou un nom de région. Par exemple, le tableau suivant répertorie les différences entre les valeurs de retour lorsqu’un objet RegionInfo est instancié en tirant parti de la région « US », de la culture « en-US » et de la culture « es-US ».
Membre "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