我希望为该类或整个应用程序设置默认的区域性信息。
例如,在土耳其,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;
在类中,您可以在关键方法中设置/恢复区域性,但对于大多数需要将区域性作为参数之一的格式化相关方法,使用适当的重写会更加安全:
(3.3).ToString(new CultureInfo("fr-FR"))
在4.0中,您需要像Alexei所描述的那样为每个线程设置区域性(culture),但是在4.5中,您可以为应用程序域定义一个区域性,这是处理此问题的首选方法。相关的 API 是 CultureInfo.DefaultThreadCurrentCulture 和 CultureInfo.DefaultThreadCurrentUICulture。
CultureInfo customCulture = new CultureInfo("en-US");
Languages.Culture = customCulture;