C# Convert.ToString方法和Object.ToString()在全球化方面的差异
C#.net中的Convert.ToString方法和Object.ToString()之间除了处理空值的方式之外还有什么区别吗。C# Convert.ToString方法和Object.ToString()在全球化方面的差异,c#,.net,string,globalization,C#,.net,String,Globalization,C#.net中的Convert.ToString方法和Object.ToString()之间除了处理空值的方式之外还有什么区别吗。 从全球化的角度来看,两者之间可能存在一些差异 大部分情况下,Convert.ToString会对传入的值调用ToString。例如,只有少数例外 Convert.ToString(object,IFormatProvider),用于检查值是否实现IConverable,如果值不为null,则委托给该值,否则委托给value.ToString Convert.ToSt
从全球化的角度来看,两者之间可能存在一些差异 大部分情况下,Convert.ToString会对传入的值调用ToString。例如,只有少数例外 Convert.ToString(object,IFormatProvider),用于检查值是否实现IConverable,如果值不为null,则委托给该值,否则委托给value.ToString Convert.ToString(IntXX,Int32),其中XX是16,32,64。这将进行基本转换
因此,我不认为这两者在全球化方面有任何区别。Convert.ToString在很大程度上调用传递的值上的ToString。例如,只有少数例外 Convert.ToString(object,IFormatProvider),用于检查值是否实现IConverable,如果值不为null,则委托给该值,否则委托给value.ToString Convert.ToString(IntXX,Int32),其中XX是16,32,64。这将进行基本转换 因此,我不认为两者在全球化方面有任何区别。是和否 例如,
Convert.ToString(int)
方法与Int32.ToString()
方法相同:“此实现与Int32.ToString()相同。”但是,Convert
类还提供了覆盖,该覆盖将IFormatProvider
作为第二个参数(例如),这可用于调整输出格式,例如通过传递CultureInfo
实例。是和否
例如,
Convert.ToString(int)
方法与Int32.ToString()
方法相同:“此实现与Int32.ToString()相同。”但是,Convert
类还提供了覆盖,该覆盖将IFormatProvider
作为第二个参数(例如),这可以用来调整输出格式,例如通过传递CultureInfo
实例。当然,这仍然只是调用value.ToString并直接传递IFormatProvider。因此,Convert.ToString提供了与直接在对象上使用ToString相同的支持,除了我在回答中提到的少数情况。这是真的,但Ananth要求与object.ToString()
(其中Int32.ToString()
覆盖)相比有所不同,而且此方法不提供IFormatProvider
参数。谢谢gehho。对于“Object.ToString()”,我指的是Int32、Double等类型。。x、 toString()提供的重载(包括IFormatProvider)比convert.toString()提供的要多……当然,这仍然只是调用value.toString并直接传递IFormatProvider。因此,Convert.ToString提供了与直接在对象上使用ToString相同的支持,除了我在回答中提到的少数情况。这是真的,但Ananth要求与object.ToString()
(其中Int32.ToString()
覆盖)相比有所不同,而且此方法不提供IFormatProvider
参数。谢谢gehho。对于“Object.ToString()”,我指的是Int32、Double等类型。。x、 toString()提供的重载(包括IFormatProvider)比convert.toString()提供的要多…感谢Taylor提供的宝贵信息。但是当我们检查这两个支持的重载数量时,我仍然有疑问。想象一下,双d=1000;d、 Tostring()有4个重载。ie可以将IformatProvider以及格式字符串作为参数。但是当我们转换.ToString(d,XYZ)时,我们无法接收格式字符串。仅限IformatProvider。那么这意味着什么呢???@Ananth,格式字符串不会影响字符串的本地化。例如,d.ToString(“F2”,new CultureInfo(“en GB”))将返回字符串1000.00,而d.ToString(“F2”,new CultureInfo(“el GR”))将返回1000,00(请注意,“,”作为小数点)。因此,在本例中,格式字符串没有改变,并且只影响格式字符串的本地化。感谢Taylor提供的宝贵信息。但是当我们检查这两个支持的重载数量时,我仍然有疑问。想象一下,双d=1000;d、 Tostring()有4个重载。ie可以将IformatProvider以及格式字符串作为参数。但是当我们转换.ToString(d,XYZ)时,我们无法接收格式字符串。仅限IformatProvider。那么这意味着什么呢???@Ananth,格式字符串不会影响字符串的本地化。例如,d.ToString(“F2”,new CultureInfo(“en GB”))将返回字符串1000.00,而d.ToString(“F2”,new CultureInfo(“el GR”))将返回1000,00(请注意,“,”作为小数点)。所以在这种情况下,格式字符串没有改变,并且只影响格式字符串的本地化。