this只是调用本身,但是这样是需要调用一次基类没有参的构造函数,所以会多显示一条“基类的无参数构造函数。
base是调用基类的有参数构造函数。
大致测试,有时间向详细描述
public class A
{
public A()
{
Console.WriteLine("这是无参A类");
}
public A(int i)
{
Console.WriteLine("这是有1个参数A类 _ " + i);
}
public A(A q)
{
Console.WriteLine("这是有1个参数A类 _ " + q);
}
}
public class B : A
{
public B()
{
Console.WriteLine("这是无参B类");
}
public B(A a)
{
Console.WriteLine("这是类A参数B类");
}
public B(int i)
{
Console.WriteLine("这是有int参数B类 _ " + i);
}
}
public class C : B
{
public C()
{
Console.WriteLine("这是无参C类");
}
public C(int i)
{
Console.WriteLine("这是有1个参数C类 _ " + i);
}
public C(A a) : base(a)
{
Console.WriteLine("我也不知道这是要干嘛");
}
}
internal class Program
{
static void Main(string[] args)
{
A a = new A();
//B b = new B();
C c = new C(a);
Console.ReadKey();
}
}