构造函数主要分三种:系统默认无参的构造、实例构造、静态构造

1.系统默认的无参构造:倘若用户没有提供任何构造函数,那么编译器clr会自动的提供一个无参的构造函数,来初始化变量,比如bool型的初始化为fals

2.实例构造:是对类中实例进行初始化的方法成员,这里实例构造函数主要是在继承的时候会有些注意点:分3点

(1)两个类各自都有一个无参的构造,当派生类实例化的时候会先调用基类的构造函数。
(2)两个类各自都有一个无参和有参构造;当用户实例化有参构造的对象时,需要调用基类的无参构造。

(3)当类B继承类A,A最好定义一个无参构造;当派生类没有指名调用基类的那个构造函数的时候系统会默认成调用基类的无参构造,这个时候需要用户提供一个无参的构造,(因为用户提供了一个有参数的构造函数,系统就不会在提供无参的构造函数)

3.静态的构造函数:它一般用于对静态数据的初始化
1)不能有参数,不能有修饰符(除public),不能被继承

2)当类加载的时候,静态构造函数由系统自动调用

3)在程序执行过程中,静态构造只执行一次

4)静态构造函数只能对静态成员访问,不能对非静态成员访问,而非静态的则可以对静态和非静态的都可以访问(因为静态相对非静态的来说在内存的地址是固定的,而非静态成员在内存中的地址是不固定的,所以静态成员不能得到非静态成员的地址,固非静态不能访问静态的)