总是提供ToString()方法

1原因

类型的字符串表示非常有用,可以在很多地方向用户显示对象的有关信息,例如在windows forms上、web forms上、控制台输出窗口中,以及调试环境中。为此,我们创建的每一个类型都因该重写Object类的ToString()方法。

2举例

public class Customer
{
private string _name;
private decimal _revenue;
private string _contactPhone;
}


如果不提供重写的版本,Customer将继承Object类的ToString()方法,也就是返回一个“Customer”字符串。这个字符串实在没有什么用处。即使ToString()方法只应用于调试的目的,我们也应该返回一个有意义的描述。我们重写的时候应该尽量考虑用户的所希望的表示。就上面这个类型来说,返回_name是一个不错的选择:

public override string ToString()
{
return _name;
}

在我们为Customer类重写了ToString()方法之后,该类的对象将可以更容易的添加到Windows Froms控件、Web Forms控件或者控制台上。

3总结

重写Object.ToString()是为类提供字符串表示的最简单方式。每当我们创建一个类型时,都要提供该方法。它应该是我们的类型最明显、最常用的一种表示。只有在一些比较少的情况下,当我们期望为类型提供更复杂的输出格式是,才应该实现IFormattable接口。它为“类型的用户定制类型的字符串输出”提供了一种标准的方式。如果我们没有做这些工作,用户就要自己来实现自定义的格式化器。那样的做法需要更多得代码,因为用户处于类外,无法访问对象的内部状态。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值