如何为整个c#应用程序设置默认文化信息

Mon*_*RPG 48 c# globalization cultureinfo c#-4.0 invariantculture

我想为该类或整个应用程序设置默认文化信息.

例如在土耳其3,2 =英语3.2

所以应用程序使用我的本地,但我希望它作为默认使用

System.Globalization.CultureInfo.InvariantCulture
Run Code Online (Sandbox Code Playgroud)

如何将其设置为特定类或整个应用程序的默认值

Eri*_*SFT 49

使用4.0,您需要通过为Alexei描述的每个线程设置文化来自行管理.但是使用4.5,您可以为appdomain定义文化,这是处理此问题的首选方法.相关的apis是CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture.


Ale*_*kov 46

不适用于整个应用程序或特定类.

CurrentUICulture和CurrentCulture可以按照这里讨论的每个线程进行设置有没有为整个应用程序设置文化的方法?所有当前线程和新线程?.你根本无法改变InvariantCulture.

用于更改当前线程的文化的示例代码:

CultureInfo ci = new CultureInfo(theCultureString);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
Run Code Online (Sandbox Code Playgroud)

对于类,您可以在关键方法中设置/恢复文化,但对于将文化作为参数之一的大多数格式化相关方法使用适当的替代将是非常安全的:

(3.3).ToString(new CultureInfo("fr-FR"))
Run Code Online (Sandbox Code Playgroud)

  • 好的,我找到了如何制作: System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US", false); System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false); (2认同)