考虑以下代码:
编码
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
构造函数一。基本的。
为什么第二个构造函数首先运行?
我知道在链式构造函数中,我们首先调用基类构造函数,然后沿着链返回,但是当构造函数保存在同一个类中时,为什么我们仍然会看到首先调用额外构造函数的这种行为?
我原以为会首先执行最基本的构造函数内容。