以下三个ToString之间有什么区别

时间:2010-11-28 07:54:52

标签: c# .net string

string ToString();
string ToString(IFormatProvider provider);
string ToString(string format, IFormatProvider provider);

2 个答案:

答案 0 :(得分:1)

使用编辑:

public override string ToString()

提供最简单的格式;它不允许格式说明符,文化是隐含的。但是显示基本的UI控件或者在调试过程中是方便的。

2 argument version允许指定格式和文化,IFormattable接口通常由string.Format和UI控件检查,允许开发人员指定要使用的格式(特别是在数据绑定)。

1参数版本没有特殊意义;请参考文档,但在您给出的示例中,似乎只允许指定文化。在大多数情况下,我实际上会期待

public string ToString(string format)

更有可能,默认使用当前文化(或两者都提供)。

答案 1 :(得分:0)

(注意:问题已经改变了......)

您可以始终覆盖ToString(除非基类密封它),因此您通常可以执行某些事情 - 但是如果您想要格式说明符支持(即文本)基于模式,例如“###,000”)IFormattable是路线 - 但您需要自己提供实施。请注意,在某些情况下,TypeConverter也可能有所帮助。