我正在用C#编写一个控制台应用程序,它大量使用字符串比较以及数字的格式化和解析,这些数字是从文本文件中读取和写入的。
理想情况下,程序在每台计算机上的行为应该完全相同,但是在具有不同语言环境的计算机上测试后,我意识到C#中提到的功能会自动使用当前语言环境的格式。这是不幸的,因为系统的语言环境会导致我的程序行为发生变化,甚至导致程序崩溃(即解析数字错误 - 系统特定 - 小数分隔符)。
我正在寻找一种方法来告诉编译器/程序忽略程序范围内的当前语言环境,而是使用默认/英语语言。
我已经看过提到的可以更改线程的默认语言环境的解决方案。
我不确定如何使用linq,并行foreach等。所以理想情况下我只想为整个程序设置英语/默认语言环境以避免任何意外。我怎么能这样做?
答案 0 :(得分:2)
退房:Set default thread culture for all thread?
但它的长短是它设置为CultureInfo.DefaultThreadCurrentCulture
属性,每https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.defaultthreadcurrentculture.aspx