构造函数的作用是初始化一个新对象,构造函数实在对象初始化的时候优先调用。readonly 字段可以直接在定义中进行赋值,也可在构造函数中对其进行赋值,其他地方不能对其进行赋值。
构造函数的执行顺序:如下
public class MyBaseClass
{
public MyBaseClass()
{
}
public MyBaseClass(int i)
: this()
{
}
public MyBaseClass(int i, int j)
{
}
}
public class MyDrivedClass : MyBaseClass
{
public MyDrivedClass()
: base(0)
{
}
public MyDrivedClass(int i)
{
}
public MyDrivedClass(int i, int j)
: base(i)
{
}
}
class Program
{
static void Main(string[] args)
{
//执行顺序System.Object()->MyBaseClass()->MyBaseClass(int i)->MyDrivedClass()
//MyDrivedClass md = new MyDrivedClass();
//执行顺序System.Object()->MyBaseClass()->MyDrivedClass(int i)
//int i = 0;
//MyDrivedClass md = new MyDrivedClass(i);
//若要不执行默认构造函数,需要添加继承base(canshu)或this(canshu)
//执行顺序System.Object()->MyBaseClass()->MyBaseClass(int i)->MyDrivedClass(int i, int j)
MyDrivedClass mdc = new MyDrivedClass(7, 8);
}
}
base关键字是指向的基类构造方法,this关键字是指向本类的构造方法。