Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
В отличие от класса CultureInfo, класс RegionInfo не представляет пользовательских предпочтений и не зависит от языка или региональных параметров пользователя.
Имена, связанные с объектом RegionInfo
Имя RegionInfo объекта является одним из двухбуквовых кодов, определенных в ISO 3166 для страны или региона. Дело не является значительным. Свойства Name, TwoLetterISORegionName и ThreeLetterISORegionName возвращают коды в соответствующем верхнем регистре. Текущий RegionInfo список имен см. в формате ISO 3166: коды стран.
Создание экземпляра объекта RegionInfo
Чтобы создать экземпляр объекта RegionInfo, передайте в конструктор RegionInfo(String) название региона в виде двух букв, например «US» для США, или название определённой культуры, например «en-US» для английского языка (США). Однако мы рекомендуем использовать имя конкретной культуры вместо двухбуквенного имени региона, так как объект RegionInfo не полностью независим от языка. Несколько RegionInfo свойств, включая DisplayName, NativeName, и 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
В таких сценариях используйте имена культур вместо имен стран или регионов при создании экземпляра RegionInfo объекта.
Если имя языка имеет основное значение. Например, для
es-USназвания культуры вы, вероятно, предпочтете, чтобы ваше приложение отображало "Estados Unidos" вместо "Соединенные Штаты". Использование только имени страны или региона (US) приводит к "Соединенные Штаты" независимо от языка, поэтому вместо этого следует работать с именем культуры.Если необходимо учитывать различия сценариев. Например, страна или регион
AZимеет дело с азербайджанскими культурами, которые имеют именаaz-Latn-AZиaz-Cyrl-AZ, а латинские и кирилличные скрипты могут быть очень разными для этой страны или региона.Когда важно обслуживание деталей. Значения, возвращаемые членами RegionInfo, могут отличаться в зависимости от того, был ли объект RegionInfo создан с использованием имени культуры или имени региона. Например, в следующей таблице перечислены различия в возвращаемых значениях при создании экземпляра объекта RegionInfo с использованием региона 'US', культуры 'en-US' и культуры 'es-US'.
Член "США" "en-US" "es-US" CurrencyNativeName US DollarUS DollarDólar de EE.UU.Name USen-USes-USNativeName United StatesUnited StatesEstados UnidosToString USen-USes-US