Condividi tramite


RegionInfo Costruttori

Definizione

Inizializza una nuova istanza della classe RegionInfo.

Overload

Nome Descrizione
RegionInfo(Int32)

Inizializza una nuova istanza della RegionInfo classe in base al paese/area geografica associato all'identificatore delle impostazioni cultura specificato.

RegionInfo(String)

Inizializza una nuova istanza della RegionInfo classe in base al paese o all'area geografica o alle impostazioni cultura specifiche, specificate per nome.

RegionInfo(Int32)

Origine:
RegionInfo.cs
Origine:
RegionInfo.cs
Origine:
RegionInfo.cs
Origine:
RegionInfo.cs
Origine:
RegionInfo.cs

Inizializza una nuova istanza della RegionInfo classe in base al paese/area geografica associato all'identificatore delle impostazioni cultura specificato.

public:
 RegionInfo(int culture);
public RegionInfo(int culture);
new System.Globalization.RegionInfo : int -> System.Globalization.RegionInfo
Public Sub New (culture As Integer)

Parametri

culture
Int32

Identificatore delle impostazioni cultura.

Eccezioni

culture specifica impostazioni cultura invarianti, personalizzate o neutre.

oppure

Solo .NET 6+: la modalità invariante globalizzazione è abilitata nell'ambiente.

Esempio

Nell'esempio di codice seguente vengono confrontate due istanze di RegionInfo create in modo diverso.

using System;
using System.Globalization;

public class SamplesRegionInfo  {

   public static void Main()  {

      // Creates a RegionInfo using the ISO 3166 two-letter code.
      RegionInfo myRI1 = new RegionInfo( "US" );

      // Creates a RegionInfo using a CultureInfo.LCID.
      RegionInfo myRI2 = new RegionInfo( new CultureInfo("en-US",false).LCID );

      // Compares the two instances.
      if ( myRI1.Equals( myRI2 ) )
         Console.WriteLine( "The two RegionInfo instances are equal." );
      else
         Console.WriteLine( "The two RegionInfo instances are NOT equal." );
   }
}

/*
This code produces the following output.

The two RegionInfo instances are equal.

*/
Imports System.Globalization


Public Class SamplesRegionInfo   

   Public Shared Sub Main()

      ' Creates a RegionInfo using the ISO 3166 two-letter code.
      Dim myRI1 As New RegionInfo("US")

      ' Creates a RegionInfo using a CultureInfo.LCID.
      Dim myRI2 As New RegionInfo(New CultureInfo("en-US", False).LCID)

      ' Compares the two instances.
      If myRI1.Equals(myRI2) Then
         Console.WriteLine("The two RegionInfo instances are equal.")
      Else
         Console.WriteLine("The two RegionInfo instances are NOT equal.")
      End If 

   End Sub

End Class


'This code produces the following output.
'
'The two RegionInfo instances are equal.

Commenti

RegionInfo(String) è il costruttore consigliato per creare un'istanza di un RegionInfo oggetto. A differenza del RegionInfo(Int32) costruttore che richiede un identificatore delle impostazioni cultura numeriche come parametro, il relativo parametro è un nome delle impostazioni cultura più leggibile o un codice paese.

L'identificatore delle impostazioni cultura viene mappato all'identificatore delle impostazioni locali NLS (National Language Support) corrispondente. Per altre informazioni, vedere Informazioni di riferimento su Windows LCID.

Il valore della Name proprietà del nuovo RegionInfo oggetto di cui è stata creata un'istanza chiamando questo costruttore è il codice ISO 3166 a 2 lettere per il paese/area geografica, non la lingua combinata e il codice paese/area geografica. Ad esempio, se viene creata un'istanza di un RegionInfo oggetto con l'identificatore delle impostazioni cultura 0x0409 per le impostazioni cultura inglese (Stati Uniti), il valore della Name proprietà è "US". Al contrario, se viene creata un'istanza di un RegionInfo oggetto con la lingua combinata e il codice en-US paese/area geografica per le impostazioni cultura inglese (Stati Uniti), il valore della Name proprietà è "en-US" in .NET Framework e solo "US" in .NET Core e .NET 5+.

Vedi anche

Si applica a

RegionInfo(String)

Origine:
RegionInfo.cs
Origine:
RegionInfo.cs
Origine:
RegionInfo.cs
Origine:
RegionInfo.cs
Origine:
RegionInfo.cs

Inizializza una nuova istanza della RegionInfo classe in base al paese o all'area geografica o alle impostazioni cultura specifiche, specificate per nome.

public:
 RegionInfo(System::String ^ name);
public RegionInfo(string name);
new System.Globalization.RegionInfo : string -> System.Globalization.RegionInfo
Public Sub New (name As String)

Parametri

name
String

Stringa che contiene un codice a due lettere definito in ISO 3166 per paese/area geografica.

oppure

Stringa che contiene il nome delle impostazioni cultura per impostazioni cultura specifiche, impostazioni cultura personalizzate o impostazioni cultura solo Windows. Se il nome delle impostazioni cultura non è in formato RFC 4646, l'applicazione deve specificare l'intero nome delle impostazioni cultura anziché solo il paese o l'area geografica.

Eccezioni

name è null.

name non è un nome di paese/area geografica valido o un nome di impostazioni cultura specifico.

oppure

Solo .NET 6+: la modalità invariante globalizzazione è abilitata nell'ambiente.

Esempio

Nell'esempio di codice seguente vengono confrontate due istanze di RegionInfo create in modo diverso.

using System;
using System.Globalization;

public class SamplesRegionInfo  {

   public static void Main()  {

      // Creates a RegionInfo using the ISO 3166 two-letter code.
      RegionInfo myRI1 = new RegionInfo( "US" );

      // Creates a RegionInfo using a CultureInfo.LCID.
      RegionInfo myRI2 = new RegionInfo( new CultureInfo("en-US",false).LCID );

      // Compares the two instances.
      if ( myRI1.Equals( myRI2 ) )
         Console.WriteLine( "The two RegionInfo instances are equal." );
      else
         Console.WriteLine( "The two RegionInfo instances are NOT equal." );
   }
}

/*
This code produces the following output.

The two RegionInfo instances are equal.

*/
Imports System.Globalization


Public Class SamplesRegionInfo   

   Public Shared Sub Main()

      ' Creates a RegionInfo using the ISO 3166 two-letter code.
      Dim myRI1 As New RegionInfo("US")

      ' Creates a RegionInfo using a CultureInfo.LCID.
      Dim myRI2 As New RegionInfo(New CultureInfo("en-US", False).LCID)

      ' Compares the two instances.
      If myRI1.Equals(myRI2) Then
         Console.WriteLine("The two RegionInfo instances are equal.")
      Else
         Console.WriteLine("The two RegionInfo instances are NOT equal.")
      End If 

   End Sub

End Class


'This code produces the following output.
'
'The two RegionInfo instances are equal.

Nell'esempio di codice seguente vengono create istanze di usando i nomi delle RegionInfo impostazioni cultura.

using System;
using System.Globalization;

public class SamplesRegionInfo  {

   public static void Main()  {

      // Creates an array containing culture names.
      String[] myCultures = new String[]  { "", "ar", "ar-DZ", "en", "en-US" };

      // Creates a RegionInfo for each of the culture names.
      //    Note that "ar" is the culture name for the neutral culture "Arabic",
      //    but it is also the region name for the country/region "Argentina";
      //    therefore, it does not fail as expected.
      Console.WriteLine("Without checks...");
      foreach (String culture in myCultures)  {
         try  {
            RegionInfo myRI = new RegionInfo( culture );
         }
         catch ( ArgumentException e )  {
            Console.WriteLine( e.ToString() );
         }
      }

      Console.WriteLine();

      Console.WriteLine( "Checking the culture names first..." );
      foreach (String culture in myCultures)  {
         if ( culture == "" )  {
            Console.WriteLine("The culture is the invariant culture.");
         }
         else  {
            CultureInfo myCI = new CultureInfo( culture, false );
            if ( myCI.IsNeutralCulture )
                {
                    Console.WriteLine( "The culture {0} is a neutral culture.", culture );
                }
                else   {
               Console.WriteLine( "The culture {0} is a specific culture.", culture );
               try  {
                  RegionInfo myRI = new RegionInfo( culture );
               }
               catch ( ArgumentException e )  {
                  Console.WriteLine( e.ToString() );
               }
            }
         }
      }
   }
}

/*
This code produces the following output.

Without checks...
System.ArgumentException: Region name '' is not supported.
Parameter name: name
   at System.Globalization.RegionInfo..ctor(String name)
   at SamplesRegionInfo.Main()
System.ArgumentException: Region name 'en' is not supported.
Parameter name: name
   at System.Globalization.CultureTableRecord..ctor(String regionName, Boolean useUserOverride)
   at System.Globalization.RegionInfo..ctor(String name)
   at SamplesRegionInfo.Main()

Checking the culture names first...
The culture is the invariant culture.
The culture ar is a neutral culture.
The culture ar-DZ is a specific culture.
The culture en is a neutral culture.
The culture en-US is a specific culture.

*/
Imports System.Globalization

Public Class SamplesRegionInfo

    Public Shared Sub Main()

        ' Creates an array containing culture names.
        Dim myCultures() As String = {"", "ar", "ar-DZ", "en", "en-US"}

        Dim culture As String

        ' Creates a RegionInfo for each of the culture names.
        '    Note that "ar" is the culture name for the neutral culture "Arabic",
        '    but it is also the region name for the country/region "Argentina";
        '    therefore, it does not fail as expected.
        Console.WriteLine("Without checks...")
        For Each culture In  myCultures
            Try
                Dim myRI As New RegionInfo(culture)
            Catch e As ArgumentException
                Console.WriteLine(e.ToString())
            End Try
        Next

        Console.WriteLine()

        Console.WriteLine("Checking the culture names first...")
        For Each culture In  myCultures
            If culture = "" Then
                Console.WriteLine("The culture is the invariant culture.")
            Else
                Dim myCI As New CultureInfo(culture, False)
                If myCI.IsNeutralCulture Then
                    Console.WriteLine("The culture {0} is a neutral culture.", culture)
                Else
                    Console.WriteLine("The culture {0} is a specific culture.", culture)
                    Try
                        Dim myRI As New RegionInfo(culture)
                    Catch e As ArgumentException
                        Console.WriteLine(e.ToString())
                    End Try
                End If
            End If
        Next
    End Sub  
End Class 
'The example displays the following output.
'
'Without checks...
'System.ArgumentException: Region name '' is not supported.
'Parameter name: name
'   at System.Globalization.RegionInfo..ctor(String name)
'   at SamplesRegionInfo.Main()
'System.ArgumentException: Region name 'en' is not supported.
'Parameter name: name
'   at System.Globalization.CultureTableRecord..ctor(String regionName, Boolean useUserOverride)
'   at System.Globalization.RegionInfo..ctor(String name)
'   at SamplesRegionInfo.Main()
'
'Checking the culture names first...
'The culture is the invariant culture.
'The culture ar is a neutral culture.
'The culture ar-DZ is a specific culture.
'The culture en is a neutral culture.
'The culture en-US is a specific culture.

Commenti

Il name parametro è uno dei codici definiti per paese/area geografica o un nome di impostazioni cultura specifico, personalizzato o solo Windows. Il caso non è significativo. Tuttavia, le Nameproprietà , TwoLetterISORegionNamee ThreeLetterISORegionName restituiscono il codice o il nome delle impostazioni cultura specificato in lettere maiuscole.

I nomi predefiniti RegionInfo sono elencati in ISO 3166: Codici paese.

È consigliabile specificare il nome di impostazioni cultura specifiche anziché semplicemente un nome di paese/area geografica nel name parametro . Ad esempio, en-US per l'inglese (Stati Uniti) o es-US per lo spagnolo (Stati Uniti) è preferibile perché US le proprietà come NativeName e CurrencyNativeName riflettono una lingua specifica. az-Latn-AZ o az-Cyrl-AZ è preferibile perché AZ le proprietà, ad NativeNameesempio , CurrencyNativeNamee CurrencySymbol riflettono uno script specifico. I nomi delle impostazioni cultura predefiniti sono elencati in Informazioni di riferimento su Windows LCID.

Questo costruttore genera un'eccezione ArgumentException se name è una lingua neutra, ad esempio en per l'inglese.

Note per i chiamanti

Questo costruttore accetta solo impostazioni cultura specifiche o codici paese/area geografica. Tuttavia, alcuni nomi di impostazioni cultura neutre sono gli stessi dei codici paese/area geografica. In questo caso, name viene interpretato come codice paese/area geografica anziché come nome delle impostazioni cultura neutre e questo costruttore non genera un'eccezione ArgumentException.

Si applica a