我们常在构造函数里看到这样的代码
class A{
public A(string name){}
public A(string name,int age):this(name)
}
这里的:可以是this或者base,意思是调用自身或者基类的构造函数,而且执行顺序是先调用,再执行本身
public class Test
{
public string Name { get; set; }
public Test(string name)
{
Name = name;
}
public Test(string name,string n):this(name)
{
Name = n;
}
}
Test t = new Test("小明","肖华");
Console.WriteLine(t.Name);
//输出 肖华
另外派生类呢?如果基类不含有0参数的构造函数,而子类是不能含有0参数的构造函数的,会报:基类不含有0参数的构造函数,因为派生类的实例化,是先实例化基类,调用基类的构造函数,所以派生类的构造函数参数必须符合基于基类的构造函数上扩展且加上:base()。