C#中,假設(shè)p1是一個(gè)類的實(shí)例,并且重寫了ToString方法,那么Console.WriteLine(p1);為什么會(huì)輸出p1.ToString()的結(jié)果?貌似就算不重寫輸出的也是ToString的結(jié)果,是因?yàn)樽詣?dòng)就調(diào)用么?不用顯式的寫p1.ToString()么?
2 回答

滄海一幻覺
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
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()); } } }
看看這個(gè)就明白了,內(nèi)部是這樣實(shí)現(xiàn)的。

慕尼黑的夜晚無繁華
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
因?yàn)镃onsole.WriteLine也是個(gè)方法啊。。這個(gè)方法里輸出的是p1.ToString的結(jié)果啊。。你去看源代碼好了
- 2 回答
- 0 關(guān)注
- 413 瀏覽
添加回答
舉報(bào)
0/150
提交
取消