0

我有一个用 C# 开发的软件,它是一个纯语义应用程序。但是,德国用户发现该软件在安装在德国计算机上时会不时停止工作。临时解决办法是在控制面板中更改语言设置,将语言设置从德语更改为英语后,它就可以正常工作了。这只是一种工程软件,该软件与德语或英语没有任何关系。此外,正如 msdn 中其他帖子所建议的那样,我已经多次检查了源代码中的“InitializeComponent()”。“InitializeComponent()”函数中没有奇怪的代码。

4

2 回答 2

2

当您更改语言环境时,您会更改 ','(逗号)和 '.' 的含义。(句号)用于数字时。可能是您试图将包含这些字符的文本解析为数字吗?

您的程序是否尝试使用格式化数字初始化数字字段?

在解析和格式化文本时,您需要确保您的代码对用户的文化敏感。InvariantCulture在读取存储到文件或通过网络发送的数据时,您还需要确保使用一致的文化(例如)。

于 2013-01-31T20:03:50.287 回答
0

如果您使用的是 .NET Framework 4.5,您可能有兴趣了解CultureInfo.DefaultThreadCurrentCulture 属性

在 .NET Framework 4 及以前的版本中,默认情况下,所有线程的区域性都设置为 Windows 系统区域性。对于当前文化与默认系统文化不同的应用程序,这种行为通常是不可取的。

页面上的示例及其解释可能对您的问题很有帮助。

此外,作为旁注,try{...}catch{...}总是欢迎使用块。

于 2013-01-31T20:14:58.800 回答