Condividi tramite


Classe RegionInfo

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

A differenza della CultureInfo classe , la RegionInfo classe non rappresenta le preferenze utente e non dipende dalla lingua o dalle impostazioni cultura dell'utente.

Nomi associati a un oggetto RegionInfo

Il nome di un RegionInfo oggetto è uno dei codici a due lettere definiti in ISO 3166 per paese/area geografica. Il caso non è significativo. Le Nameproprietà , TwoLetterISORegionNamee ThreeLetterISORegionName restituiscono i codici appropriati in lettere maiuscole. Per l'elenco corrente dei RegionInfo nomi, vedere ISO 3166: Codici paese.

Creare un'istanza di un oggetto RegionInfo

Per creare un'istanza di un RegionInfo oggetto, passare al RegionInfo(String) costruttore un nome di area a due lettere, ad esempio "US" per il Stati Uniti o il nome di impostazioni cultura specifiche, ad esempio "en-US" per l'inglese (Stati Uniti). È tuttavia consigliabile usare un nome di impostazioni cultura specifico anziché un nome di area geografica a due lettere, perché un RegionInfo oggetto non è completamente indipendente dalla lingua. Diverse RegionInfo proprietà, tra cui DisplayName, NativeNamee CurrencyNativeName, dipendono dai nomi delle impostazioni cultura.

Nell'esempio seguente viene illustrata la differenza nei valori delle RegionInfo proprietà per tre oggetti che rappresentano il Belgio. La prima viene creata un'istanza solo da un nome di area (BE), mentre la seconda e la terza vengono create rispettivamente dai nomi delle impostazioni cultura (fr-BE per il francese (Belgio) e nl-BE per l'olandese (Belgio). Nell'esempio viene utilizzata la reflection per recuperare i valori delle proprietà di ogni RegionInfo oggetto.

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

Negli scenari come i seguenti, usare i nomi delle impostazioni cultura anziché i nomi di paese/area geografica quando si crea un'istanza di un RegionInfo oggetto:

  • Quando il nome della lingua è di importanza primaria. Ad esempio, per il nome delle es-US impostazioni cultura, è probabile che l'applicazione visualizzi "Estados Unidos" anziché "Stati Uniti". L'uso del nome del paese o dell'area geografica (US) produce "Stati Uniti" indipendentemente dalla lingua, quindi è consigliabile usare il nome delle impostazioni cultura.

  • Quando è necessario considerare le differenze di script. Ad esempio, il paese/area AZ geografica riguarda le impostazioni cultura azere con i nomi az-Latn-AZ e az-Cyrl-AZe gli script latini e cirillici possono essere molto diversi per questo paese/area geografica.

  • Quando la manutenzione dei dettagli è importante. I valori restituiti dai RegionInfo membri possono variare a seconda che l'oggetto sia stato creato un'istanza RegionInfo usando un nome delle impostazioni cultura o un nome di area. La tabella seguente, ad esempio, elenca le differenze nei valori restituiti quando viene creata un'istanza di un RegionInfo oggetto usando l'area "Stati Uniti", le impostazioni cultura "en-US" e le impostazioni cultura "es-US".

    Membro "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