.net 如何更改Object.ToString使用的区域性?
写起来很乏味.net 如何更改Object.ToString使用的区域性?,.net,string-formatting,globalization,tostring,.net,String Formatting,Globalization,Tostring,写起来很乏味 string msg = "Result is " + r.ToString(CultureInfo.InvariantCulture) + " with " + p.toString(CultureInfo.InvariantCulture) + "% probability."; 我宁愿 string msg = "Result is " + r + " with " + p + "% probability."; 如何在整个项目中将InvariantCulture
string msg = "Result is " + r.ToString(CultureInfo.InvariantCulture) + " with "
+ p.toString(CultureInfo.InvariantCulture) + "% probability.";
我宁愿
string msg = "Result is " + r + " with " + p + "% probability.";
如何在整个项目中将InvariantCulture
设置为默认值
我的目标是生成程序员可读的输出。您需要为其设置当前线程和ui线程区域性:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
您的示例显示了显示文本的格式,因此您应该信任纯版本的
ToString()
来根据当前区域性设置对象的格式。因此,根本不指定区域性。别担心,这是命中注定的
InvariantCulture
应保留用于构造用于控制逻辑的字符串而不是显示字符串的情况。例如,请参见确认这一点的示例
如果出于某种模糊的原因,您确实不希望显示字符串中有任何变化,那么您可以指定区域性、任何区域性(例如Thread.CurrentThread.CurrentCulture=new CultureInfo(“en-US”);
),但不能指定InvariantCulture