Sdílet prostřednictvím


RegionInfo Konstruktory

Definice

Inicializuje novou instanci RegionInfo třídy .

Přetížení

RegionInfo(Int32)

Inicializuje novou instanci RegionInfo třídy na základě země nebo oblasti přidružené k zadanému identifikátoru jazykové verze.

RegionInfo(String)

Inicializuje novou instanci RegionInfo třídy na základě země/oblasti nebo konkrétní jazykové verze určené názvem.

RegionInfo(Int32)

Zdroj:
RegionInfo.cs
Zdroj:
RegionInfo.cs
Zdroj:
RegionInfo.cs

Inicializuje novou instanci RegionInfo třídy na základě země nebo oblasti přidružené k zadanému identifikátoru jazykové verze.

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

Parametry

culture
Int32

Identifikátor jazykové verze.

Výjimky

culture určuje invariantní, vlastní nebo neutrální jazykovou verzi.

-nebo-

Pouze .NET 6+: V prostředí je povolený režim globalizace invariantní.

Příklady

Následující příklad kódu porovnává dvě instance RegionInfo , které byly vytvořeny odlišně.

using namespace System;
using namespace System::Globalization;
int main()
{
   
   // Creates a RegionInfo using the ISO 3166 two-letter code.
   RegionInfo^ myRI1 = gcnew RegionInfo( "US" );
   
   // Creates a RegionInfo using a CultureInfo.LCID.
   RegionInfo^ myRI2 = gcnew RegionInfo( (gcnew 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.

*/
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.

Poznámky

RegionInfo(String) je doporučený konstruktor pro vytvoření instance objektu RegionInfo . Na rozdíl od konstruktoru RegionInfo(Int32) , který jako parametr vyžaduje identifikátor číselné jazykové verze, je jeho parametr čitelnější název jazykové verze nebo kód země.

Identifikátor jazykové verze je mapován na odpovídající identifikátor národního prostředí podpory národních jazyků (NLS). Další informace najdete v tématu Referenční informace k LCID systému Windows.

Hodnota Name vlastnosti nového RegionInfo objektu vytvořených voláním tohoto konstruktoru je 2-písmenný kód ISO 3166 pro zemi/oblast, nikoli kombinovaný kód jazyka a země/oblasti. Pokud se například vytvoří instance objektu RegionInfo s identifikátorem jazykové verze 0x0409 anglické jazykové verze (USA), hodnota Name vlastnosti je "US". Naproti tomu pokud je instance objektu RegionInfo vytvořena s kombinovaným kódem en-US jazyka a země/oblasti pro jazykovou verzi angličtiny (USA), hodnota Name vlastnosti je v rozhraní .NET Framework "en-US" a v .NET Core a .NET 5+.

Viz také

Platí pro

RegionInfo(String)

Zdroj:
RegionInfo.cs
Zdroj:
RegionInfo.cs
Zdroj:
RegionInfo.cs

Inicializuje novou instanci RegionInfo třídy na základě země/oblasti nebo konkrétní jazykové verze určené názvem.

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

Parametry

name
String

Řetězec, který obsahuje dvoumísmenný kód definovaný v ISO 3166 pro zemi/oblast.

-nebo-

Řetězec, který obsahuje název jazykové verze pro konkrétní jazykovou verzi, vlastní jazykovou verzi nebo jazykovou verzi pouze pro Windows. Pokud název jazykové verze není ve formátu RFC 4646, měla by aplikace místo země/oblasti zadat celý název jazykové verze.

Výjimky

name je null.

name není platný název země/oblasti nebo název konkrétní jazykové verze.

-nebo-

Pouze .NET 6+: V prostředí je povolený režim globalizace invariantní.

Příklady

Následující příklad kódu porovnává dvě instance RegionInfo , které byly vytvořeny odlišně.

using namespace System;
using namespace System::Globalization;
int main()
{
   
   // Creates a RegionInfo using the ISO 3166 two-letter code.
   RegionInfo^ myRI1 = gcnew RegionInfo( "US" );
   
   // Creates a RegionInfo using a CultureInfo.LCID.
   RegionInfo^ myRI2 = gcnew RegionInfo( (gcnew 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.

*/
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.

Následující příklad kódu vytvoří instance pomocí názvů jazykových RegionInfo verzí.

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;

namespace Sample
{
    public ref class SamplesRegionInfo  
    {
    public: 
        static void Work()  
        {

            // Creates an array containing culture names.
            array <String^>^ commonCultures = 
                {"", "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...");
            for each (String^ cultureID in commonCultures)
            {   
                try  
                {
                    RegionInfo^ region = 
                    gcnew RegionInfo(cultureID);
                }

                catch (ArgumentException^ ex)  
                {
                    Console::WriteLine(ex);
                }
            }

            Console::WriteLine();

            Console::WriteLine("Checking the culture"
                " names first...");

            for each (String^ cultureID in commonCultures)
            {
                if (cultureID->Length == 0)  
                {
                    Console::WriteLine(
                        "The culture is the invariant culture.");
                }
                else  
                {
                    CultureInfo^ culture = 
                        gcnew CultureInfo(cultureID, false);
                    if (culture->IsNeutralCulture)
                    {
                        Console::WriteLine("The culture {0} is "
                            "a neutral culture.", cultureID);
                    }
                    else   
                    {
                        Console::WriteLine("The culture {0} is "
                            "a specific culture.", cultureID);
                        try  
                        {
                            RegionInfo^ region = 
                                gcnew RegionInfo(cultureID);
                        }
                        catch (ArgumentException^ ex)  
                        {
                            Console::WriteLine(ex);
                        }
                    }
                }
            } 
            Console::ReadLine();
        }
    };
}

int main()
{
    Sample::SamplesRegionInfo::Work();
    return 0;
}

/*
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.

*/
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.

Poznámky

Parametr name je buď jeden z kódů definovaných pro zemi/oblast, nebo konkrétní, vlastní název jazykové verze nebo název jazykové verze jenom pro Windows. Velikost písmen není důležitá. NameVlastnosti , TwoLetterISORegionNamea ThreeLetterISORegionName však vracejí zadaný kód nebo název jazykové verze velkými písmeny.

Předdefinované RegionInfo názvy jsou uvedeny v části ISO 3166: Kódy zemí.

V parametru byste měli zadat název konkrétní jazykové verze, nikoli jenom název name země nebo oblasti. Například en-US pro angličtinu (USA) nebo es-US španělštinu (USA) je vhodnějšíUS, protože vlastnosti jako NativeName a CurrencyNativeName odrážejí konkrétní jazyk. az-Latn-AZ nebo az-Cyrl-AZ je vhodnější než AZ proto, že vlastnosti jako NativeName, CurrencyNativeNamea CurrencySymbol odrážejí konkrétní skript. Předdefinované názvy jazykových verzí jsou uvedeny v referenčních informacích LCID systému Windows.

Tento konstruktor vyvolá výraz if ArgumentExceptionname je neutrální jazyková verze (například en pro angličtinu).

Poznámky pro volající

Tento konstruktor přijímá pouze konkrétní jazykové verze nebo kódy zemí/oblastí. Některé neutrální názvy jazykových verzí jsou však stejné jako kódy země/oblasti. V tomto případě name se interpretuje jako kód země/oblasti, nikoli jako neutrální název jazykové verze a tento konstruktor nevyvolá ArgumentException.

Platí pro