RegionInfo クラス

この記事は、この API のリファレンス ドキュメントの補足説明です。

CultureInfo クラスとは異なり、RegionInfo クラスはユーザーの好みを表すものではなく、ユーザーの言語やカルチャに依存しません。

RegionInfo オブジェクトに関連付けられている名前

RegionInfo オブジェクトの名前は、ISO 3166 で国/地域に対して定義されている 2 文字のコードの 1 つです。 大文字と小文字は区別されません。 NameTwoLetterISORegionNameThreeLetterISORegionName の各プロパティは、適切なコードを大文字で返します。 RegionInfo の最新の名前一覧については、ISO 3166 の「Country codes」(国番号) を参照してください。

RegionInfo オブジェクトのインスタンスを作成する

RegionInfo オブジェクトのインスタンスを作成するには、RegionInfo(String) コンストラクターに 2 文字の地域名 (米国の場合は "US" など)、または特定のカルチャの名前 (英語 (米国) の場合は "en-US" など) を渡します。 ただし、RegionInfo オブジェクトは完全に言語依存ではないため、2 文字の地域名ではなく特定のカルチャ名を使うことをお勧めします。 DisplayNameNativeNameCurrencyNativeName など、一部の 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-AZaz-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