《Effective C#》Item 5:提供一个有意义的ToString函数

在编写自定义类型的时候,即使我们不写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函数会有很多变化,这也许只有到真正的应用当中才能更深刻的体会到。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值