C#-构造函数

创建一个类的时候,使用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可带参数使用也可以不带参数使用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容