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我发给你
因为Console.WriteLine也是个方法啊。。这个方法里输出的是p1.ToString的结果啊。。你去看源代码好了
什么源代码?
@微澜: .Net Framework的源代码. 反编译一下自己看看.
@反对者:给个理由?
d应为在C#中所有的对象都是集成于object的,在object中就包括一个ToString()的方法,在调动Console.WriteLine(object obj)时,应该是调用对象的ToString()方法。
c#的所有引用类型都继承自object。它默认提供一个ToString方法,如果你想输出特殊的格式需要自定义
如:
class person
{
string firstname;
string lastName;
public override string ToString()
{
return string.format({0}-{1}“,firstName,lastName);
}
}