写
是很乏味的string msg = "Result is " + r.ToString(CultureInfo.InvariantCulture) + " with "
+ p.toString(CultureInfo.InvariantCulture) + "% probability.";
我更喜欢
string msg = "Result is " + r + " with " + p + "% probability.";
如何在整个项目中将InvariantCulture
设置为默认值?
我的目标是生成程序员可读输出。
答案 0 :(得分:5)
您需要将当前线程和ui线程文化设置为它:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
答案 1 :(得分:-1)
您的示例显示了显示文本的格式,因此您应该信任ToString()
的纯文本格式,以根据当前文化格式设置对象的格式。因此,根本不要指定文化。别担心,这就是它的意思!
InvariantCulture
应该保留用于构造用于控制逻辑而不是显示字符串的字符串的情况。例如,参见this MSDN page确认这一点。
如果由于某些不明原因您确实不希望显示字符串发生任何变化,那么您可以指定文化,任何文化(例如Thread.CurrentThread.CurrentCulture = new CultureInfo( "en-US");
),但不能InvariantCulture
。