关于ToString()的问题

C#中,假设p1是一个类的实例,并且重写了ToString方法,那么

Console.WriteLine(p1);为什么会输出p1.ToString()的结果?

貌似就算不重写输出的也是ToString的结果,是因为自动就调用么?不用显式的写p1.ToString()么?


繁星淼淼
浏览 398回答 2
2回答

沧海一幻觉

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());         }     } } 看看这个就明白了,内部是这样实现的。

慕尼黑的夜晚无繁华

因为Console.WriteLine也是个方法啊。。这个方法里输出的是p1.ToString的结果啊。。你去看源代码好了
打开App,查看更多内容
随时随地看视频慕课网APP