RegionInfo Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса RegionInfo.
Перегрузки
| Имя | Описание |
|---|---|
| RegionInfo(Int32) |
Инициализирует новый экземпляр класса на основе страны или региона, связанного RegionInfo с указанным идентификатором языка и региональных параметров. |
| RegionInfo(String) |
Инициализирует новый экземпляр класса на основе страны или региона или конкретного RegionInfo языка и региональных параметров, указанных по имени. |
RegionInfo(Int32)
- Исходный код:
- RegionInfo.cs
- Исходный код:
- RegionInfo.cs
- Исходный код:
- RegionInfo.cs
- Исходный код:
- RegionInfo.cs
- Исходный код:
- RegionInfo.cs
Инициализирует новый экземпляр класса на основе страны или региона, связанного RegionInfo с указанным идентификатором языка и региональных параметров.
public:
RegionInfo(int culture);
public RegionInfo(int culture);
new System.Globalization.RegionInfo : int -> System.Globalization.RegionInfo
Public Sub New (culture As Integer)
Параметры
- culture
- Int32
Идентификатор языка и региональных параметров.
Исключения
culture указывает инвариантный, пользовательский или нейтральный язык и региональные параметры.
–или–
Только .NET 6+: режим глобализации и инвариантного режима включен в среде.
Примеры
В следующем примере кода сравниваются два экземпляра RegionInfo , которые были созданы по-разному.
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.
Комментарии
RegionInfo(String) — это рекомендуемый конструктор для создания экземпляра RegionInfo объекта. RegionInfo(Int32) В отличие от конструктора, который требует числового идентификатора языка и региональных параметров в качестве параметра, его параметр является более читаемым именем языка и региональных параметров или кодом страны.
Идентификатор языка и региональных параметров сопоставляется с соответствующим идентификатором языкового стандарта (NLS). Дополнительные сведения см. в справочнике по Windows LCID.
Значение Name свойства нового RegionInfo объекта, созданного путем вызова этого конструктора, — это код ISO 3166 2 буквы для страны или региона, а не объединенный язык и код страны или региона. Например, если RegionInfo объект создается с идентификатором языка и региональных параметров 0x0409 для английского языка (США), значение Name свойства — US. В отличие от этого, если RegionInfo объект создается с объединенным языком и кодом en-US страны или региона для английского языка (США), значение Name свойства — "en-US" в .NET Framework и просто "US" в .NET Core и .NET 5+.
См. также раздел
Применяется к
RegionInfo(String)
- Исходный код:
- RegionInfo.cs
- Исходный код:
- RegionInfo.cs
- Исходный код:
- RegionInfo.cs
- Исходный код:
- RegionInfo.cs
- Исходный код:
- RegionInfo.cs
Инициализирует новый экземпляр класса на основе страны или региона или конкретного RegionInfo языка и региональных параметров, указанных по имени.
public:
RegionInfo(System::String ^ name);
public RegionInfo(string name);
new System.Globalization.RegionInfo : string -> System.Globalization.RegionInfo
Public Sub New (name As String)
Параметры
- name
- String
Строка, содержащая двухбуквенный код, определенный в ISO 3166 для страны или региона.
–или–
Строка, содержащая имя языка и региональных параметров для определенного языка и региональных параметров, пользовательского языка и региональных параметров или только для Windows. Если имя языка и региональных параметров не находится в формате RFC 4646, приложение должно указать все имя языка и региональных параметров, а не только страну или регион.
Исключения
name равно null.
name не является допустимым именем страны или региона или определенным языком и региональными параметрами.
–или–
Только .NET 6+: режим глобализации и инвариантного режима включен в среде.
Примеры
В следующем примере кода сравниваются два экземпляра RegionInfo , которые были созданы по-разному.
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.
В следующем примере кода создаются экземпляры RegionInfo имен языка и региональных параметров.
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.
Комментарии
Параметр name является одним из кодов, определенных для страны или региона, или определенного, настраиваемого или только для Windows языка и региональных параметров. Дело не является значительным.
Name
TwoLetterISORegionNameОднако свойства и ThreeLetterISORegionName свойства возвращают указанное имя кода или языка и региональных параметров в верхнем регистре.
Предопределенные RegionInfo имена перечислены в iso 3166: коды стран.
Необходимо указать имя определенного языка и региональных параметров, а не только имя страны или региона в параметре name . Например, для английского (США) или en-US испанского (США) предпочтительнееes-US, US так как такие свойства, как NativeName и CurrencyNativeName отражение определенного языка.
az-Latn-AZ или az-Cyrl-AZ предпочтительнее AZ , так как такие свойства, как NativeName, CurrencyNativeNameи CurrencySymbol отражают определенный скрипт. Предопределенные имена языка и региональных параметров перечислены в справочнике по Windows LCID.
Этот конструктор создает ArgumentException исключение, если name является нейтральным языком и региональными параметрами (например en , для английского языка).
Примечания для тех, кто вызывает этот метод
Этот конструктор принимает только определенные региональные параметры или коды стран или регионов. Однако некоторые нейтральные имена региональных параметров совпадают с кодами стран и регионов. В этом случае name интерпретируется как код страны или региона, а не нейтральное имя языка и региональных параметров, и этот конструктор не создает исключение ArgumentException.