RegionInfo Construtores
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicializa uma nova instância da classe RegionInfo.
Sobrecargas
RegionInfo(Int32) |
Inicializa uma nova instância da classe RegionInfo com base no país/região associados ao identificador de cultura especificado. |
RegionInfo(String) |
Inicializa uma nova instância da classe RegionInfo com base no país/região ou cultura específica, especificada por nome. |
RegionInfo(Int32)
- Origem:
- RegionInfo.cs
- Origem:
- RegionInfo.cs
- Origem:
- RegionInfo.cs
Inicializa uma nova instância da classe RegionInfo com base no país/região associados ao identificador de cultura especificado.
public:
RegionInfo(int culture);
public RegionInfo (int culture);
new System.Globalization.RegionInfo : int -> System.Globalization.RegionInfo
Public Sub New (culture As Integer)
Parâmetros
- culture
- Int32
Um identificador de cultura.
Exceções
culture
especifica uma cultura invariável, personalizada ou neutra.
-ou-
Somente .NET 6+: o modo invariável de globalização está habilitado no ambiente.
Exemplos
O exemplo de código a seguir compara duas instâncias de que foram criadas de RegionInfo forma diferente.
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.
Comentários
RegionInfo(String) é o construtor recomendado para instanciar um RegionInfo objeto . Ao contrário do RegionInfo(Int32) construtor que requer um identificador de cultura numérica como um parâmetro, seu parâmetro é um nome de cultura ou código de país mais legível.
O identificador de cultura é mapeado para o identificador de localidade nls correspondente. Para obter mais informações, consulte Referência do Windows LCID.
O valor da Name propriedade do novo RegionInfo objeto instanciado chamando esse construtor é o código ISO 3166 de duas letras para o país/região, não o código combinado de país/região e idioma. Por exemplo, se um RegionInfo objeto for instanciado com o identificador de cultura 0x0409 para a cultura em inglês (Estados Unidos), o valor da Name propriedade será "US". Por outro lado, se um RegionInfo objeto for instanciado com o código en-US
combinado de idioma e país/região para a cultura em inglês (Estados Unidos), o valor da Name propriedade será "en-US" em .NET Framework e apenas "US" no .NET Core e no .NET 5+.
Confira também
Aplica-se a
RegionInfo(String)
- Origem:
- RegionInfo.cs
- Origem:
- RegionInfo.cs
- Origem:
- RegionInfo.cs
Inicializa uma nova instância da classe RegionInfo com base no país/região ou cultura específica, especificada por nome.
public:
RegionInfo(System::String ^ name);
public RegionInfo (string name);
new System.Globalization.RegionInfo : string -> System.Globalization.RegionInfo
Public Sub New (name As String)
Parâmetros
- name
- String
Uma cadeia de caracteres que contém um código de duas letras definido na norma ISO 3166 para o país/região.
- ou -
Uma cadeia de caracteres que contém o nome da cultura para uma cultura específica, cultura personalizada ou cultura somente do Windows. Se o nome da cultura não estiver no formato RFC 4646, o aplicativo deverá especificar o nome inteiro da cultura em vez de apenas o país/região.
Exceções
name
é null
.
name
não é um nome válido de país/região ou cultura específica.
-ou-
Somente .NET 6+: o modo invariável de globalização está habilitado no ambiente.
Exemplos
O exemplo de código a seguir compara duas instâncias de que foram criadas de RegionInfo forma diferente.
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.
O exemplo de código a seguir cria instâncias de usando nomes de RegionInfo cultura.
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.
Comentários
O name
parâmetro é um dos códigos definidos para país/região ou um nome de cultura específico, personalizado ou somente windows. O caso não é significativo. No entanto, as Namepropriedades , TwoLetterISORegionNamee ThreeLetterISORegionName retornam o nome de cultura ou código especificado em letras maiúsculas.
Os nomes predefinidos RegionInfo estão listados na ISO 3166: códigos de país.
Você deve fornecer o nome de uma cultura específica em vez de apenas um nome de país/região no name
parâmetro . Por exemplo, en-US
para inglês (Estados Unidos) ou es-US
espanhol (Estados Unidos) é preferível porque US
propriedades como NativeName e CurrencyNativeName refletem um idioma específico. az-Latn-AZ
ou az-Cyrl-AZ
é preferível a AZ
porque propriedades como NativeName, CurrencyNativeNamee CurrencySymbol refletem um script específico. Os nomes de cultura predefinidos são listados na referência LCID do Windows.
Esse construtor lança um ArgumentException se name
é uma cultura neutra (como en
para inglês).
Notas aos Chamadores
Esse construtor aceita apenas culturas específicas ou códigos de país/região. No entanto, alguns nomes de cultura neutros são iguais aos códigos de país/região. Nesse caso, name
é interpretado como um código de país/região em vez de um nome de cultura neutro, e esse construtor não gera um ArgumentException.