.NET类的成员变量初始化与构造函数执行的顺序

Posted by – 2009/02/05

.NET类的成员变量初始化与构造函数执行的顺序是怎样的呢?可以通过下面的测试得出。

在执行了TestNewDerivedType这个用例后会在输出中显示如下结果:

derived type static field
derived type cctor
derived type instance field
base type static field
base type cctor
base type instance field
base type ctor
derived type ctor

可以得出其顺序是:

  1. 派生类静态成员变量
  2. 派生类静态构造函数
  3. 派生类实例成员变量
  4. 基类静态成员变量
  5. 基类静态构造函数
  6. 基类实例成员变量
  7. 基类实例构造函数
  8. 派生类实例构造函数

实际上在这个过程中一直到System.Object的构造函数都会被执行。

另见
Essential .NET Volume 1: The Common Language Runtime Page 60 Types and Initialization

0 Comments on .NET类的成员变量初始化与构造函数执行的顺序

Respond

Respond

Comments

Comments