RegionInfo Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.