そのクラスまたはアプリケーション全体のデフォルトのカルチャ情報を設定したいと考えています。
たとえば、トルコでは 3,2 = 英語では 3.2
そのため、アプリケーションはローカルを使用しますが、デフォルトとして使用したい
System.Globalization.CultureInfo.InvariantCulture
その特定のクラスまたはアプリケーション全体のデフォルトとしてそれを設定するにはどうすればよいですか
そのクラスまたはアプリケーション全体のデフォルトのカルチャ情報を設定したいと考えています。
たとえば、トルコでは 3,2 = 英語では 3.2
そのため、アプリケーションはローカルを使用しますが、デフォルトとして使用したい
System.Globalization.CultureInfo.InvariantCulture
その特定のクラスまたはアプリケーション全体のデフォルトとしてそれを設定するにはどうすればよいですか
アプリケーション全体または特定のクラスではありません。
ここで説明するように、CurrentUICulture と CurrentCulture はスレッドごとに設定できます。アプリケーション全体のカルチャを設定する方法はありますか? すべての現在のスレッドと新しいスレッド? . あなたはまったく変えることができませんInvariantCulture
。
現在のスレッドのカルチャを変更するサンプル コード:
CultureInfo ci = new CultureInfo(theCultureString);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
クラスの場合、重要なメソッド内でカルチャを設定/復元できますが、カルチャを引数の 1 つとして受け取るほとんどの書式設定関連メソッドに対して適切なオーバーライドを使用することは、非常に安全です。
(3.3).ToString(new CultureInfo("fr-FR"))
4.0 では、Alexei が説明するように、各スレッドのカルチャを設定して、これを自分で管理する必要があります。しかし、4.5 では、appdomain のカルチャを定義できます。これは、これを処理するための推奨される方法です。関連する API はCultureInfo.DefaultThreadCurrentCultureとCultureInfo.DefaultThreadCurrentUICultureです。