《Effective C#》Item 5:提供一个有意义的ToString函数
来源:互联网 发布:网站域名注册信息查询 编辑:程序博客网 时间:2024/05/16 05:13
在编写自定义类型的时候,即使我们不写ToString函数,系统也会自动提供ToString函数,例如:
public class clsUserInfo
{
private string strUserName;
……
}
不过系统所提供ToString函数,并不做太多的事情,无法真实的反映当前对象的一些属性,就如上这段代码,调用ToString返回的结果和GetType后转换成String是一样的。那么这样的返回值对于调用者来说没有太多的意义。
为了能提供一个有意义的ToString函数,则需要重载ToString函数来实现一个面向此对象的ToString函数。举例说明,对于上面clsUserInfo这个类型,如下这种写法会使ToString函数更有意义。
public class clsUserInfo
{
private string strUserName;
……
public override string ToString()
{
return string.Format( "User name:{0}", strUserName );
}
}
提供一个有意义的ToString函数,对于进行调试或者发布此类都是很有用,因为这种做法是最简便的方法,相对于访问类的成员属性然后再组合字符串。不过大家写代码的时候,包括我在内,往往忽略了去提供一个有意义的ToString函数,这点看来要在今后的编码中进行改善。
除了重载系统提供的ToString函数外,在C#中还可以继承IFormattable接口,来提供更复杂的ToString函数,至于这方面,我不想多说,因为继承了接口,提供的ToString函数会有很多变化,这也许只有到真正的应用当中才能更深刻的体会到。
- 《Effective C#》Item 5:提供一个有意义的ToString函数
- 《Effective C#》Item 5:提供一个有意义的ToString函数
- Effective JavaScript Item 28 不要依赖函数的toString方法
- Effective C# 原则5:始终提供ToString()
- 一个有意义的函数MAKELRESULT
- 《Effective C#》Item 18:Dispose函数的标准实现模式
- 《Effective C#》Item 18:Dispose函数的标准实现模式
- [翻译] Effective C++, 3rd Edition, Item 50: 领会何时替换 new 和 delete 才有意义
- Effective C# Item5:总是提供ToString()方法
- [翻译] Effective C++, 3rd Edition, Item 37: 绝不要重定义一个函数的 inherited default parameter value(通过继承得到的缺省参数值)
- [翻译] Effective C++, 3rd Edition, Item 36: 绝不要重定义一个 inherited non-virtual function(通过继承得到的非虚拟函数)
- More Effective C++ Item M31:让函数根据一个以上的对象来决定怎么虚拟
- Effective C++ Item 25 考虑写出一个不抛异常的swap函数
- 《Effective C#》Item 10:小心GetHashCode函数所存在的陷阱
- 转:《Effective C#》Item 10:小心GetHashCode函数所存在的陷阱
- 《Effective C#》Item 10:小心GetHashCode函数所存在的陷阱
- 《Effective C#》Item 10:小心GetHashCode函数所存在的陷阱
- 《Effective C#》Item 10:小心GetHashCode函数所存在的陷阱 (转)
- 对.lds连接脚本文件的分析
- 《Effective C#》Item 3:使用as和is操作符来做类型转换
- 《Effective C#》Item 4:使用Conditional属性来代替IF/ENDIF程序块
- javascript实现对中文进行排序
- 嵌入式软件开发流程
- 《Effective C#》Item 5:提供一个有意义的ToString函数
- 《Effective C#》Item 6:区分值类型和引用类型
- wxPython之ID管理
- 《Effective C#》Item 7:推荐使用不可改变的原子值类型
- 《Effective C#》Item 8:确保“0”在值类型中是有效的
- 《Effective C#》Item 9:区别和认识四个判等函数
- 《Effective C#》Item 10:小心GetHashCode函数所存在的陷阱
- 没有工作经验的程序员究竟是怎么走出第一步的?
- 《Effective C#》Item 11:提倡使用foreach语句来进行循环操作