この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

CultureInfo.InvariantCulture プロパティ

 

公開日: 2016年10月

カルチャに依存しない (インバリアントな) CultureInfo オブジェクトを取得します。

名前空間:   System.Globalization
アセンブリ:  mscorlib (mscorlib.dll 内)

public static CultureInfo InvariantCulture { get; }

プロパティ値

Type: System.Globalization.CultureInfo

カルチャに依存しない (インバリアントな) オブジェクト。

インバリアント カルチャは、カルチャに依存しません。関連付けられている国/地域ではなくが、英語の言語を使用します。 名前を空の文字列を使用して、インバリアント カルチャを指定して ("") への呼び出しで、 CultureInfo メソッドをインスタンス化します。 CultureInfo.InvariantCulture また、インバリアント カルチャのインスタンスを取得します。 ほとんどのメソッドで使用できます、 System.Globalization 名前空間をカルチャを必要とします。 などのプロパティによって返されるオブジェクト CompareInfo, 、DateTimeFormat, 、および NumberFormat も反映文字列の比較とインバリアント カルチャの規則を書式設定します。

カルチャに依存したデータは、ユーザーのカスタマイズまたは .NET Framework またはオペレーティング システムの更新によって変更される可能性があるとは異なりインバリアント カルチャされデータが安定した時間の経過と共に、およびインストールされているカルチャ間のユーザーがカスタマイズすることはできません。 これにより、インバリアント カルチャを書式設定および解析を永続化操作は、データ、または並べ替えと順序付けをカルチャに関係なく一定の順序でデータを表示するように必要とする操作を書式設定など、カルチャに依存しない結果を必要とする操作に特に便利です。

カルチャに依存した文字列操作の現在のスレッド カルチャの規則を受けないし、一貫性のある複数のカルチャでは、インバリアント カルチャを使用できます。 たとえば、一定の順序で表示されるか、現在のスレッド カルチャに関係なく文字列に大文字と小文字の規則の標準セットを適用する並べ替えられたデータが必要な可能性があります。 これを行うには、渡す、 InvariantCulture オブジェクトを持つメソッドを CultureInfo パラメーターなど Compare(String, String, Boolean, CultureInfo)ToUpper(CultureInfo)です。

InvariantCulture カルチャに依存しない形式でデータを保持するプロパティを使用できます。 これにより、既知の形式が変更されず、およびカルチャにデータを逆シリアル化に使用できるとします。 データが逆シリアル化後、形式指定できる、現在のユーザーのカルチャの規則に基づいて、適切なです。

たとえば、文字列形式の日付と時刻のデータを保持する場合を渡すことができます、 InvariantCulture オブジェクトを DateTime.ToString(String, IFormatProvider) または DateTimeOffset.ToString(IFormatProvider) 、文字列を作成するメソッドに渡すことができます、 InvariantCulture オブジェクトを DateTime.Parse(String, IFormatProvider) または DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) 文字列を日付と時刻の値に変換します。 この方法により、基になる日付と時刻の値は、データが読み取られたり、別のカルチャのユーザーによって作成されたときに変更されません。

次の例は、永続化するインバリアント カルチャを使用して、 DateTime 文字列値。 文字列を解析し、フランス語 (フランス) とドイツ語 (ドイツ) カルチャの書式指定規則を使用して、その値を表示します。

using System;
using System.IO;
using System.Globalization;

public class Example 
{
   public static void Main() 
   {
      // Persist the date and time data.
      StreamWriter sw = new StreamWriter(@".\DateData.dat");

      // Create a DateTime value.      
      DateTime dtIn = DateTime.Now;
      // Retrieve a CultureInfo object.
      CultureInfo invC = CultureInfo.InvariantCulture;

      // Convert the date to a string and write it to a file.
      sw.WriteLine(dtIn.ToString("r", invC));
      sw.Close();

      // Restore the date and time data.
      StreamReader sr = new StreamReader(@".\DateData.dat");
      String input;
      while ((input = sr.ReadLine()) != null) 
      {
         Console.WriteLine("Stored data: {0}\n" , input);    

         // Parse the stored string.
         DateTime dtOut = DateTime.Parse(input, invC, DateTimeStyles.RoundtripKind);

         // Create a French (France) CultureInfo object.
         CultureInfo frFr = new CultureInfo("fr-FR");
         // Displays the date formatted for the "fr-FR" culture.
         Console.WriteLine("Date formatted for the {0} culture: {1}" , 
                           frFr.Name, dtOut.ToString("f", frFr));

         // Creates a German (Germany) CultureInfo object.
         CultureInfo deDe= new CultureInfo("de-De");
         // Displays the date formatted for the "de-DE" culture.
         Console.WriteLine("Date formatted for {0} culture: {1}" , 
                           deDe.Name, dtOut.ToString("f", deDe));
      }
      sr.Close();
   }
}
// The example displays the following output:
//    Stored data: Tue, 15 May 2012 16:34:16 GMT
//    
//    Date formatted for the fr-FR culture: mardi 15 mai 2012 16:34
//    Date formatted for de-DE culture: Dienstag, 15. Mai 2012 16:34

(システム リソースへのアクセスを許可するかどうか) などのセキュリティに関する決定を行う場合、文字列の比較または小文字の変更の結果に基づき、行わないでインバリアント カルチャ。 代わりを含むメソッドを呼び出すことによって大文字または小文字を区別しない序数に基づく比較を実行する必要があります、 StringComparison パラメーターは、いずれかを指定して StringComparison.Ordinal または StringComparison.OrdinalIgnoreCase を引数として。 カルチャに依存した文字列の操作を実行するコードは、現在のカルチャが変更された場合、またはコードをテストするために使用するカルチャと、コードを実行しているコンピューター上のカルチャが異なる場合、セキュリティの脆弱性を原因となります。 これに対し、序数に基づく比較は、比較する文字のバイナリ値にのみ依存します。

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: