本文提供了此 API 参考文档的补充说明。
与类 CultureInfo 不同,该 RegionInfo 类不表示用户首选项,也不依赖于用户的语言或区域性。
与 RegionInfo 对象关联的名称
对象的名称 RegionInfo 是在 ISO 3166 中为国家/地区定义的双字母代码之一。 大小写并不重要。 和NameTwoLetterISORegionNameThreeLetterISORegionName属性以大写形式返回相应的代码。 有关当前名称列表 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”而不是“United States”。 仅使用国家/地区名称(US
)会显示“美国”,而不考虑语言,因此应改用文化名称。当必须考虑脚本差异时。 例如,国家/地区
AZ
处理具有名称az-Latn-AZ
az-Cyrl-AZ
的阿塞拜疆文化,拉丁文和西里尔文脚本对于这个国家/地区可能大不相同。在维护详细信息非常重要的情况下。 RegionInfo 成员返回的值可能有所不同,这取决于 RegionInfo 对象是使用文化名称还是区域名称实例化的。 例如,下表列出了在使用“US”地区、“en-US”文化信息和“es-US”文化信息来实例化 RegionInfo 对象时返回值的差异。
成员 美国 “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