郁闷!关于ToString()的override重写问题
namespace ConsoleApplication5
{
class Class1
{
public readonly int intVal1;
public readonly int intVal2;
public Class1(int Val1, int Val2)
{
intVal1 = Val1;
intVal2 = Val2;
}
//public string myToString()
//{
// return "myToString";
//}
public override string ToString()
{
return "ToString !";
}
}
class Program
{
static void Main(string[] args)
{
Class1 myClass = new Class1(2, 3);
Console.WriteLine(myClass);
Console.ReadKey();
}
}
}
输出:ToString !
为什么不调用myClass.ToString()方法也能输出ToString ! 呢?
但是把ToString()方法注释掉,改成如下代码时:
namespace ConsoleApplication5
{
class Class1
{
public readonly int intVal1;
public readonly int intVal2;
public Class1(int Val1, int Val2)
{
intVal1 = Val1;
intVal2 = Val2;
}
public string myToString()
{
return "myToString";
}
//public override string ToString()
//{
// return "ToString !";
//}
}
class Program
{
static void Main(string[] args)
{
Class1 myClass = new Class1(2, 3);
Console.WriteLine(myClass);
Console.ReadKey();
}
}
}
输出的是:ConsoleApplication5.Class1
为什么会出现这种情况呢?求高手解惑啊