RegionInfo クラス
この記事は、この API のリファレンス ドキュメントの補足説明です。
CultureInfo クラスとは異なり、RegionInfo クラスはユーザーの好みを表すものではなく、ユーザーの言語やカルチャに依存しません。
RegionInfo オブジェクトに関連付けられている名前
RegionInfo オブジェクトの名前は、ISO 3166 で国/地域に対して定義されている 2 文字のコードの 1 つです。 大文字と小文字は区別されません。 Name、TwoLetterISORegionName、ThreeLetterISORegionName の各プロパティは、適切なコードを大文字で返します。 RegionInfo の最新の名前一覧については、ISO 3166 の「Country codes」(国番号) を参照してください。
RegionInfo オブジェクトのインスタンスを作成する
RegionInfo オブジェクトのインスタンスを作成するには、RegionInfo(String) コンストラクターに 2 文字の地域名 (米国の場合は "US" など)、または特定のカルチャの名前 (英語 (米国) の場合は "en-US" など) を渡します。 ただし、RegionInfo オブジェクトは完全に言語依存ではないため、2 文字の地域名ではなく特定のカルチャ名を使うことをお勧めします。 DisplayName、NativeName、CurrencyNativeName など、一部の RegionInfo プロパティはカルチャ名に依存します。
次の例は、ベルギーを表す 3 つのオブジェクトに対する RegionInfo プロパティ値の違いを示しています。 1 つ目は地域名 (BE
) のみからインスタンスが作成されていますが、2 つ目と 3 つ目はカルチャ名からインスタンスが作成されています (それぞれ、フランス語 (ベルギー) の場合は 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 オブジェクトがカルチャ名と地域名のどちらを使ってインスタンスが作成されたかに応じて異なる場合があります。 たとえば、次の表は、"US" 地域、"en-US" カルチャ、"es-US" カルチャを使って RegionInfo オブジェクトのインスタンスが作成された場合の戻り値の違いを示しています。
メンバー "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
.NET