请看下面的代码:
代码
public class RecursiveConstructor
{
//When this constructor is called
public RecursiveConstructor():this(One(), Two())
{
Console.WriteLine("Constructor one. Basic.");
}
public RecursiveConstructor(int i, int j)
{
Console.WriteLine("Constructor two.");
Console.WriteLine("Total = " + (i+j));
}
public static int One()
{
return 1;
}
public static int Two()
{
return 2;
}
}
调用方法
public class RecursiveConstructorTest
{
public static void Main()
{
RecursiveConstructor recursiveConstructor = new RecursiveConstructor();
Console.ReadKey();
}
}
结果
第二个构造函数。
总数=3
第一个构造函数。基本的。
为什么第二个构造函数先运行?
我知道在链式构造函数中我们首先调用基类构造函数,然后再往上回溯,但是当构造函数保存在同一类中时,为什么我们仍然看到这种行为,额外的构造函数会先被调用?
我原本以为最基本的构造函数内容会首先执行。