关于ToString()的问题

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

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

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


呼唤远方
浏览 387回答 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());         }     } }

qq_遁去的一_1

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