c#对象初始化顺序

来源:互联网 发布:ubuntu shell 脚本 编辑:程序博客网 时间:2024/05/22 06:20
 

C#对象初始化

1.     先变量后构造函数。变量先被初始化,然后构造函数被执行

2.     先静态化后实例化。当一个类被访问时,静态变量和构造函数最先被初始化.接着是对象的实例化变量和构造函数被初始化

3.     先派生类后基类。对于变量和静态构造函数,派生对象在基对象之前被初始化.比如C类派生自B,B类派生自A,那么变量和静态构造函数被初始化次序是C-B-A.

4.     除了实例构造函数。对于实例构造函数,基类构造函数在派生类构造函数之前执行,实例构造函数被执行次序是A-B-C.

5.     不要假定变量的次序。Fields依据它们在源文件中的声明的顺序依次初始化.然而,自从程序员和工具可以随意安排变量的声明后,你不应该在依靠变量任何特别的次序初始化

6.     对虚方法用两个阶段的构建。避免从一个构造器调用虚方法.如果在初始化一个对象时需要调用一些虚方法,应在完整构造该对象的地方使用两阶段的构建,并随后调用已构造对象的初始化方法。

原创粉丝点击