RegionInfo Класс

Определение

Содержит сведения о стране или регионе.

public ref class RegionInfo
public class RegionInfo
[System.Serializable]
public class RegionInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class RegionInfo
type RegionInfo = class
[<System.Serializable>]
type RegionInfo = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type RegionInfo = class
Public Class RegionInfo
Наследование
RegionInfo
Атрибуты

Примеры

В следующем примере демонстрируется несколько членов RegionInfo класса.

using namespace System;
using namespace System::Globalization;
int main()
{
   
   // Displays the property values of the RegionInfo for "US".
   RegionInfo^ myRI1 = gcnew RegionInfo( "US" );
   Console::WriteLine( "   Name:                         {0}", myRI1->Name );
   Console::WriteLine( "   DisplayName:                  {0}", myRI1->DisplayName );
   Console::WriteLine( "   EnglishName:                  {0}", myRI1->EnglishName );
   Console::WriteLine( "   IsMetric:                     {0}", myRI1->IsMetric );
   Console::WriteLine( "   ThreeLetterISORegionName:     {0}", myRI1->ThreeLetterISORegionName );
   Console::WriteLine( "   ThreeLetterWindowsRegionName: {0}", myRI1->ThreeLetterWindowsRegionName );
   Console::WriteLine( "   TwoLetterISORegionName:       {0}", myRI1->TwoLetterISORegionName );
   Console::WriteLine( "   CurrencySymbol:               {0}", myRI1->CurrencySymbol );
   Console::WriteLine( "   ISOCurrencySymbol:            {0}", myRI1->ISOCurrencySymbol );
   Console::WriteLine();
   
   // Compares the RegionInfo above with another RegionInfo created using CultureInfo.
   RegionInfo^ myRI2 = gcnew RegionInfo( (gcnew CultureInfo( "en-US",false ))->LCID );
   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.

   Name:                         US
   DisplayName:                  United States
   EnglishName:                  United States
   IsMetric:                     False
   ThreeLetterISORegionName:     USA
   ThreeLetterWindowsRegionName: USA
   TwoLetterISORegionName:       US
   CurrencySymbol:               $
   ISOCurrencySymbol:            USD

The two RegionInfo instances are equal.

*/
using System;
using System.Globalization;

public class SamplesRegionInfo  {

   public static void Main()  {

      // Displays the property values of the RegionInfo for "US".
      RegionInfo myRI1 = new RegionInfo( "US" );
      Console.WriteLine( "   Name:                         {0}", myRI1.Name );
      Console.WriteLine( "   DisplayName:                  {0}", myRI1.DisplayName );
      Console.WriteLine( "   EnglishName:                  {0}", myRI1.EnglishName );
      Console.WriteLine( "   IsMetric:                     {0}", myRI1.IsMetric );
      Console.WriteLine( "   ThreeLetterISORegionName:     {0}", myRI1.ThreeLetterISORegionName );
      Console.WriteLine( "   ThreeLetterWindowsRegionName: {0}", myRI1.ThreeLetterWindowsRegionName );
      Console.WriteLine( "   TwoLetterISORegionName:       {0}", myRI1.TwoLetterISORegionName );
      Console.WriteLine( "   CurrencySymbol:               {0}", myRI1.CurrencySymbol );
      Console.WriteLine( "   ISOCurrencySymbol:            {0}", myRI1.ISOCurrencySymbol );
      Console.WriteLine();

      // Compares the RegionInfo above with another RegionInfo created using CultureInfo.
      RegionInfo myRI2 = new RegionInfo( new CultureInfo("en-US",false).LCID );
      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.

   Name:                         US
   DisplayName:                  United States
   EnglishName:                  United States
   IsMetric:                     False
   ThreeLetterISORegionName:     USA
   ThreeLetterWindowsRegionName: USA
   TwoLetterISORegionName:       US
   CurrencySymbol:               $
   ISOCurrencySymbol:            USD

The two RegionInfo instances are equal.

*/
Imports System.Globalization


Public Class SamplesRegionInfo   

   Public Shared Sub Main()

      ' Displays the property values of the RegionInfo for "US".
      Dim myRI1 As New RegionInfo("US")
      Console.WriteLine("   Name:                         {0}", myRI1.Name)
      Console.WriteLine("   DisplayName:                  {0}", myRI1.DisplayName)
      Console.WriteLine("   EnglishName:                  {0}", myRI1.EnglishName)
      Console.WriteLine("   IsMetric:                     {0}", myRI1.IsMetric)
      Console.WriteLine("   ThreeLetterISORegionName:     {0}", myRI1.ThreeLetterISORegionName)
      Console.WriteLine("   ThreeLetterWindowsRegionName: {0}", myRI1.ThreeLetterWindowsRegionName)
      Console.WriteLine("   TwoLetterISORegionName:       {0}", myRI1.TwoLetterISORegionName)
      Console.WriteLine("   CurrencySymbol:               {0}", myRI1.CurrencySymbol)
      Console.WriteLine("   ISOCurrencySymbol:            {0}", myRI1.ISOCurrencySymbol)
      Console.WriteLine()

      ' Compares the RegionInfo above with another RegionInfo created using CultureInfo.
      Dim myRI2 As New RegionInfo(New CultureInfo("en-US", False).LCID)
      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.
'
'   Name:                         US
'   DisplayName:                  United States
'   EnglishName:                  United States
'   IsMetric:                     False
'   ThreeLetterISORegionName:     USA
'   ThreeLetterWindowsRegionName: USA
'   TwoLetterISORegionName:       US
'   CurrencySymbol:               $
'   ISOCurrencySymbol:            USD
'
'The two RegionInfo instances are equal.

Комментарии

CultureInfo В отличие от класса, RegionInfo этот класс не представляет пользовательских предпочтений и не зависит от языка пользователя или языка и региональных параметров.

Имена, связанные с объектом RegionInfo

Имя RegionInfo объекта является одним из двухбуквленных кодов, определенных в стандарте ISO 3166 для страны или региона. Дело не имеет большого значения. TwoLetterISORegionNameThreeLetterISORegionName И Nameсвойства возвращают соответствующие коды в верхнем регистре. Текущий RegionInfo список имен см. в статье ISO 3166: коды стран.

Создание экземпляра объекта RegionInfo

Чтобы создать RegionInfo экземпляр объекта, передайте RegionInfo(String) конструктор либо двухбуквенный имя области, например "США" для США, либо имя определенного языка и региональных параметров, например en-US для английского языка (США). Однако рекомендуется использовать конкретное имя языка и региональных параметров вместо двухбуквового имени региона, так как RegionInfo объект не является полностью независимым от языка. Несколько RegionInfo свойств, включая DisplayNameNativeName, и, зависят от имен языка и CurrencyNativeNameрегиональных параметров.

В следующем примере показано различие в RegionInfo значениях свойств для трех объектов, представляющих Бельгию. Первый экземпляр создается только из имени региона (BE), а второй и третий создаются из названий языка и региональных параметров (fr-BE для французского языка (Бельгия) и nl-BE голландцев (Бельгия) соответственно). В примере используется отражение для получения значений свойств каждого RegionInfo объекта.

using System;
using System.Globalization;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      // Instantiate three Belgian RegionInfo objects.
      RegionInfo BE = new RegionInfo("BE");
      RegionInfo frBE = new RegionInfo("fr-BE");
      RegionInfo nlBE = new RegionInfo("nl-BE");

      RegionInfo[] regions = { BE, frBE, nlBE };
      PropertyInfo[] props = typeof(RegionInfo).GetProperties(BindingFlags.Instance | BindingFlags.Public);

      Console.WriteLine("{0,-30}{1,18}{2,18}{3,18}\n",
                        "RegionInfo Property", "BE", "fr-BE", "nl-BE");
      foreach (var prop in props) {
         Console.Write("{0,-30}", prop.Name);
         foreach (var region in regions)
            Console.Write("{0,18}", prop.GetValue(region, null));

         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    RegionInfo Property                           BE             fr-BE             nl-BE
//
//    Name                                          BE             fr-BE             nl-BE
//    EnglishName                              Belgium           Belgium           Belgium
//    DisplayName                              Belgium           Belgium           Belgium
//    NativeName                                België          Belgique            België
//    TwoLetterISORegionName                        BE                BE                BE
//    ThreeLetterISORegionName                     BEL               BEL               BEL
//    ThreeLetterWindowsRegionName                 BEL               BEL               BEL
//    IsMetric                                    True              True              True
//    GeoId                                         21                21                21
//    CurrencyEnglishName                         Euro              Euro              Euro
//    CurrencyNativeName                          euro              euro              euro
//    CurrencySymbol                                 €                 €                 €
//    ISOCurrencySymbol                            EUR               EUR               EUR
Imports System.Globalization
Imports System.Reflection

Module Example
   Public Sub Main()
      ' Instantiate three Belgian RegionInfo objects.
      Dim BE As New RegionInfo("BE")
      Dim frBE As New RegionInfo("fr-BE")
      Dim nlBE As New RegionInfo("nl-BE")

      Dim regions() As RegionInfo = { BE, frBE, nlBE }
      Dim props() As PropertyInfo = GetType(RegionInfo).GetProperties(BindingFlags.Instance Or BindingFlags.Public)
      
      Console.WriteLine("{0,-30}{1,18}{2,18}{3,18}", 
                        "RegionInfo Property", "BE", "fr-BE", "nl-BE")
      Console.WriteLine()
      For Each prop As PropertyInfo In props
         Console.Write("{0,-30}", prop.Name)
         For Each region In regions
            Console.Write("{0,18}", prop.GetValue(region, Nothing))
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'    RegionInfo Property                           BE             fr-BE             nl-BE
'    
'    Name                                          BE             fr-BE             nl-BE
'    EnglishName                              Belgium           Belgium           Belgium
'    DisplayName                              Belgium           Belgium           Belgium
'    NativeName                                België          Belgique            België
'    TwoLetterISORegionName                        BE                BE                BE
'    ThreeLetterISORegionName                     BEL               BEL               BEL
'    ThreeLetterWindowsRegionName                 BEL               BEL               BEL
'    IsMetric                                    True              True              True
'    GeoId                                         21                21                21
'    CurrencyEnglishName                         Euro              Euro              Euro
'    CurrencyNativeName                          euro              euro              euro
'    CurrencySymbol                                 €                 €                 €
'    ISOCurrencySymbol                            EUR               EUR               EUR

В таких сценариях используйте имена языка и региональных параметров вместо имен стран или регионов при создании экземпляра RegionInfo объекта:

  • Если имя языка имеет основное значение. Например, для es-US имени языка и региональных параметров вы, вероятно, захотите, чтобы приложение отображалось "Estados "Estados" вместо "США". Использование только имениUS страны или региона дает "США" независимо от языка, поэтому вместо этого следует работать с именем языка и региональных параметров.

  • Если необходимо учитывать различия сценариев. Например, страна или регион AZ имеет дело с азербайджанскими культурами, имеющими имена az-Latn-AZ и az-Cyrl-AZ, а латинские и кириллицы могут быть очень разными для этой страны или региона.

  • Когда важно обслуживание деталей. Значения, возвращаемые RegionInfo членами, могут отличаться в зависимости от того, был ли RegionInfo создан экземпляр объекта с помощью имени языка и региональных параметров или имени региона. Например, в следующей таблице перечислены различия в возвращаемых значениях при создании экземпляра RegionInfo объекта с помощью региона "США", языка и региональных параметров "en-US" и языка и региональных параметров "es-US".

    Член "США" "en-US" "es-US"
    CurrencyNativeName US Dollar US Dollar Dólar de EE.UU.
    Name US en-US es-US
    NativeName United States United States Estados Unidos
    ToString US en-US es-US

Конструкторы

RegionInfo(Int32)

Инициализирует новый экземпляр класса RegionInfo, на основе страны или региона, которые связаны с заданным идентификатором языка и региональных параметров.

RegionInfo(String)

Инициализирует новый экземпляр класса RegionInfo, основанный на стране или регионе или определенном языке и региональных параметрах, указанных по имени.

Свойства

CurrencyEnglishName

Возвращает имя денежной единицы, используемой в стране или регионе, на английском языке.

CurrencyNativeName

Возвращает название денежной единицы, используемой в стране или регионе, отформатированное в соответствии с родным языком страны или региона.

CurrencySymbol

Возвращает символ денежной единицы, связанной со страной или регионом.

CurrentRegion

Возвращает объект RegionInfo, представляющий страну или регион, используемые текущим потоком.

DisplayName

Возвращает полное имя страны или региона на языке локализованной версии .NET.

EnglishName

Возвращает полное имя страны или региона на английском языке.

GeoId

Получает уникальный номер идентификации географического региона, страны, города или местности.

IsMetric

Возвращает значение, указывающее, использует ли страна или регион метрическую систему.

ISOCurrencySymbol

Возвращает трехзначный символ денежной единицы в формате ISO 4217, связанный со страной или регионом.

Name

Возвращает или задает имя или двухбуквенный код страны или региона в формате ISO 3166 для текущего объекта RegionInfo.

NativeName

Получает название страны или региона, отформатированное в соответствии с родным языком страны или региона.

ThreeLetterISORegionName

Возвращает код из трех букв, определенный в формате ISO 3166 для страны или региона.

ThreeLetterWindowsRegionName

Возвращает код из трех букв, присвоенный операционной системой Windows стране или региону, представленный этим объектом RegionInfo.

TwoLetterISORegionName

Возвращает код из двух букв, определенный в формате ISO 3166 для страны или региона.

Методы

Equals(Object)

Определяет, является ли заданный объект тем же экземпляром, что и текущий RegionInfo.

GetHashCode()

Служит хэш-функцией текущего класса RegionInfo для использования в алгоритмах и структурах данных хеширования, например в хэш-таблице.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, содержащую имя языка и региональных параметров или двухбуквенные коды страны или региона, определенные в формате ISO 3166, для текущего объекта RegionInfo.

Применяется к

См. также раздел