为了账号安全,请及时绑定邮箱和手机立即绑定

关于ToString()的问题

关于ToString()的问题

繁星淼淼 2018-11-27 13:10:16
C#中,假设p1是一个类的实例,并且重写了ToString方法,那么Console.WriteLine(p1);为什么会输出p1.ToString()的结果?貌似就算不重写输出的也是ToString的结果,是因为自动就调用么?不用显式的写p1.ToString()么?
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

public virtual void WriteLine(object value)
{
    if (value == null)
    {
        this.WriteLine();
    }
    else
    {
        IFormattable formattable = value as IFormattable;
        if (formattable != null)
        {
            this.WriteLine(formattable.ToString(null, this.FormatProvider));
        }
        else
        {
            this.WriteLine(value.ToString());
        }
    }
}


 看看这个就明白了,内部是这样实现的。


查看完整回答
反对 回复 2018-12-01
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

因为Console.WriteLine也是个方法啊。。这个方法里输出的是p1.ToString的结果啊。。你去看源代码好了

查看完整回答
反对 回复 2018-12-01
  • 2 回答
  • 0 关注
  • 397 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信