C# 什么';下面三个ToString之间的区别是什么

C# 什么';下面三个ToString之间的区别是什么,c#,.net,string,C#,.net,String,(注:问题已更改…) 您始终可以重写ToString(除非基类将其密封),因此通常可以执行某些操作-但是如果您需要格式说明符支持(例如,基于文本的模式,如“####,000”),则IFormattable是路线-但您需要自己提供实现。请注意,在某些情况下,TypeConverter可能也有帮助。(注意:问题已更改…) 您始终可以重写ToString(除非基类将其密封),因此通常可以执行某些操作-但是如果您需要格式说明符支持(例如,基于文本的模式,如“####,000”),则IFormattabl

(注:问题已更改…)

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

(注意:问题已更改…)

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

编辑:

string ToString();
string ToString(IFormatProvider provider);
string ToString(string format, IFormatProvider provider);
提供最简单的格式;它不允许格式说明符,并且区域性是隐式的。但它便于显示基本的UI控件,或在调试期间显示

允许指定格式和区域性,通常通过诸如string.format和UI控件(允许开发人员指定要使用的格式,特别是在数据绑定期间)来检查IFormattable接口

单参数版本没有特殊意义;参考文档,但在您给出的示例中,似乎只允许指定区域性。在大多数情况下,我真的希望

public override string ToString()
更可能的情况是,默认情况下使用当前区域性(或同时提供两者)。

编辑:

string ToString();
string ToString(IFormatProvider provider);
string ToString(string format, IFormatProvider provider);
提供最简单的格式;它不允许格式说明符,并且区域性是隐式的。但它便于显示基本的UI控件,或在调试期间显示

允许指定格式和区域性,通常通过诸如string.format和UI控件(允许开发人员指定要使用的格式,特别是在数据绑定期间)来检查IFormattable接口

单参数版本没有特殊意义;参考文档,但在您给出的示例中,似乎只允许指定区域性。在大多数情况下,我真的希望

public override string ToString()

更可能的情况是,默认情况下使用当前区域性(或两者都提供)。

你能进一步解释你的问题吗?我想你能进一步解释你的问题吗?我想你能进一步解释你的问题吗?我想第二个或第三个问题的例子吗?@user496949-当我添加这个时,它们并不存在。看到另一个答案了吗?有第二个或第三个的例子吗?@user496949-当我添加这个时,它们并不存在。请看另一个答案。