Partager via


Classe RegionInfo

Cet article fournit des remarques supplémentaires à la documentation de référence de cette API.

Contrairement à la CultureInfo classe, la RegionInfo classe 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 est un code à deux lettres défini par la norme ISO 3166 pour un pays ou une région. Le cas n’est pas significatif. Les propriétés Name, TwoLetterISORegionName et ThreeLetterISORegionName retournent les codes appropriés en majuscules. Pour obtenir la liste actuelle des RegionInfo noms, consultez les codes ISO 3166 : Pays.

Instancier un objet RegionInfo

Pour instancier un RegionInfo objet, vous passez le RegionInfo(String) constructeur soit un nom de région à deux lettres, tel que « US » pour les États-Unis, soit le nom d’une culture spécifique, tel que «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 RegionInfo objet n’est pas complètement indépendant du langage. Plusieurs RegionInfo propriétés, notamment DisplayName, NativeNameet CurrencyNativeName, dépendent des noms de culture.

L’exemple suivant illustre la différence entre les valeurs de RegionInfo propriété pour 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 RegionInfo objet.

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

  • Lorsque le nom de la langue est d’importance principale. Par exemple, pour le nom de la es-US culture, vous souhaiterez probablement que votre application affiche « Estados Unidos » au lieu de « États-Unis ». L’utilisation du nom de pays/région (US) génère uniquement des « États-Unis » indépendamment de la langue. Vous devez donc travailler avec le nom de la culture à la place.

  • Lorsque les différences de script doivent être prises en compte. Par exemple, le pays/la région AZ traite des cultures azerbaïdjanes qui ont les noms az-Latn-AZ et az-Cyrl-AZ, et les scripts latins et cyrilliques peuvent être très différents pour ce pays/région.

  • Lorsque la maintenance des détails est importante. Les valeurs retournées par RegionInfo les membres peuvent différer selon que l’objet RegionInfo a été instancié à l’aide d’un nom de culture ou d’un nom de région. Par exemple, le tableau suivant répertorie les différences entre les valeurs de retour lorsqu’un RegionInfo objet est instancié à l’aide 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