public struct TimeSpan
{
  ......
  public overtide string ToString() {......}
}class Tester
{
  TimeSpan myTime = new TimeSpan();
  Cosole.WriteLine("My time is: " + myTime);
}请问:
Cosole.WriteLine("My time is: " + myTime)为什么会自动调用myTime.ToString()呢?
谢谢!

解决方案 »

  1.   

    IO框件安排的,想要具体的你就的研究.net framework的那些框架底层的实现
      

  2.   

    look at the chapter about operator overload. 
    if you know c++,you should know "cout" operation. they are equal essentially.
      

  3.   

    如果把对象当作string类型参数,会自动执行ToString方法
      

  4.   

    Cosole.WriteLine("My time is: " + myTime)
    myTime在这里虽然是TimeSpan类型的,但是上面这条语句已经把myTime对象当作string类型参数了,所以会自动执行ToString()方法,不过这个只对string类型有用。