如何更改Object.ToString使用的文化?

Ans*_*iņš 2 .net globalization tostring string-formatting

写作很乏味

string msg = "Result is " + r.ToString(CultureInfo.InvariantCulture) + " with "
    + p.toString(CultureInfo.InvariantCulture) + "% probability.";
Run Code Online (Sandbox Code Playgroud)

我会比较喜欢

string msg = "Result is " + r + " with " + p + "% probability.";
Run Code Online (Sandbox Code Playgroud)

如何InvariantCulture在整个项目中将其设置为默认值?

我的目标是生成程序员可读的输出.

Ode*_*ded 5

您需要将当前线程和ui线程文化设置为它:

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
Run Code Online (Sandbox Code Playgroud)