.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可以得出其顺序是:
- 派生类静态成员变量
- 派生类静态构造函数
- 派生类实例成员变量
- 基类静态成员变量
- 基类静态构造函数
- 基类实例成员变量
- 基类实例构造函数
- 派生类实例构造函数
另见
Essential .NET Volume 1: The Common Language Runtime Page 60 Types and Initialization