C# 初始化顺序

来源:互联网 发布:淘宝红酒面膜 编辑:程序博客网 时间:2024/05/16 19:27

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

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

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

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

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

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

From 阜和教育

0 0
原创粉丝点击