C# 何时使用XmlConvert.ToString vs Object.ToString()

C# 何时使用XmlConvert.ToString vs Object.ToString(),c#,C#,我应该在什么时候使用XmlConvert.ToString转换给定的值,而不是对给定类型使用ToString方法 例如: int inputVal = 1023; 我可以使用以下任一方法将此inputVal转换为字符串表示: string strVal = inputVal.ToString(); 或 使用XmlConvert.ToString与使用普通Object.ToString相比,使用XmlConvert.ToString方法的规则是什么与区域设置无关的,因此字符串表示形式将在不同区

我应该在什么时候使用
XmlConvert.ToString
转换给定的值,而不是对给定类型使用
ToString
方法

例如:

int inputVal = 1023;
我可以使用以下任一方法将此
inputVal
转换为字符串表示:

string strVal = inputVal.ToString();


使用
XmlConvert.ToString
与使用普通
Object.ToString

相比,使用
XmlConvert.ToString
方法的规则是什么与区域设置无关的,因此字符串表示形式将在不同区域设置之间保持一致。使用
Object.ToString
可以根据与线程关联的当前区域性获得不同的表示形式

因此,使用一个与另一个是场景的问题,
XmlConvert
在您与另一个系统交换数据并且需要一致的文本表示(例如
double
值)时非常有用

您可以在以下示例中看到差异:

double d = 1.5;

Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-PT");
Console.WriteLine(d.ToString());            // 1,5
Console.WriteLine(XmlConvert.ToString(d));  // 1.5

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

Console.WriteLine(d.ToString());            // 1.5
Console.WriteLine(XmlConvert.ToString(d));  // 1.5

谢谢你的回答。我没有从微软的文档中找到这些。
double d = 1.5;

Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-PT");
Console.WriteLine(d.ToString());            // 1,5
Console.WriteLine(XmlConvert.ToString(d));  // 1.5

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

Console.WriteLine(d.ToString());            // 1.5
Console.WriteLine(XmlConvert.ToString(d));  // 1.5