创建一个类的时候,使用new运算符对类进行实例化。在为新对象分配内存之后,new运算符立即调用构造函数。
不带参数的构造函数称为“无参构造函数”。除非类是静态的,否则C#编译器将自动为无构造函数的类提供一个公共的无参构造函数。
可以通过将构造函数设置为私有构造函数,阻止类被实例化。
结构(struct)类型的构造函数和类的构造函数类似,但是structs不包含显示无参构造函数,编译器会自动提供一个显示无参构造函数。只有使用new实例化struct时,才会调用无参数构造函数。
int i = new int();
Console.WriteLine (i);
构造函数可以使base关键字调用基类的构造函数。
public class Manager:Employee{
public Manager(int annualSalary):base(annualSalary){}
}
在执行构造函数块之前会调用基类的构造函数。base关键字可带参数使用,也可不带。构造函数的任何参数都可以作base的参数,或用作表达式的一部分。
在派生类中如果不适用base关键字来显示调用基类构造函数,则将调用隐式无参数构造函数(在有的情况下 )。
如果基类没有提供无参构造函数,派生类必须使用base显示调用基类构造函数。
构造函数可以使用this调用同一对象中的另一个构造函数。和base一样,this可带参数使用也可以不带参数使用。