浅淡ToString与Covert.ToString方法
近些天看到网上很有很多的朋友谈到ToString()方法和Convert.ToString()方法的问题
个人总结了一下:
ToString()方法
说起ToString我们要从Object 类说起,它是.NET Framework 中所有类的最终基类;它是类型层次结构的根
因为 .NET Framework 中的所有类均从 Object 派生,所以 Object 类中定义的每个方法可用于系统中的所有对象。派生类可以而且确实重写这些方法中的某些,其中包括:
- Equals — 支持对象间的比较。
- Finalize — 在自动回收对象之前执行清理操作。
- GetHashCode — 生成一个与对象的值相对应的数字以支持哈希表的使用。
- ToString — 生成描述类的实例的可读文本字符串。
在Object基类当中的Object.ToString 方法返回表示当前Object的String。
此方法返回区分区域性的可读字符串(String)。例如,对于值为零的Double 类的实例,Double.ToString 的实现可能返回“0.00”或“0,00”,具体取决于当前的 UI 区域性。
默认实现返回Object 的类型的完全限定名。
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
在派生类中可以重写此方法,以返回对该类型有意义的值。例如,基础数据类型(如 Int32)实现 ToString,以便它返回对象表示的值的字符串形式。要求的字符串格式化控制比 ToString 提供的多的派生类必须实现 IFormattable,后者的 ToString 方法使用当前线程的 CurrentCulture 属性。
我们经常使用的ToString方法只是相应类对Object 类中ToString方法的重写而已,其具体的显示内容和执行方式都是由我们重写或是由.NET Framework 类已经封装好的了ToString方法确定,如Integer,Double这些类的ToString实现就是打印自身实例内容。
小结:ToString方法具体的执行内容取决其派生类的具体重写和实现,如果在派生类中未进行重写,它就调用的是Object基类中的方法,返回当前对象的类型的完全限定名。
Convert.ToString方法
它为.NET Framework 中提供的一组方法,用于将指定值转换为其等效的 String 表示形式。
其中重载了多种形式,适用于所有的基本类型数据之间的强制类型转换。
它返回一个等效于 value 的值的String类型的对象。
第一次写东西,整理不全,希望大家多多指出错误。
本博凡原创文章,希望广大朋友在转载时指明出处,谢谢合作