类的初始化顺序

1. 静态变量赋初值

2. 执行静态变量初始化器

3. 基类的静态构造函数执行

4. 当前类的静态构造函数执行

5. 实例变量赋初值

6. 实例变量初始化执行

7. 基类的实例构造函数执行

8. 当前类的实例构造函数执行

例如:

1.

public class BaseTest

{

private static string name = “BaseTest”;

static BaseTest()

{

}

public BaseTest()

{

}

}

public class InheritedTest: BaseTest

{

private static string alias = “alias”;

private string myname = “myname”;

static InheritedTest()

{

}

public InheritedTest()

{

}

}

当client调用这个语句: InheritedTest myTest = new InheritedTest();时,语句的执行顺序是:

1. alias变量分配空间

2. alais 赋值

3. name分配空间

4. name赋值

3. BaseTest静态构造函数执行

4. InheritedTest静态构造函数执行

5. myname分配空间

6. myname赋值

7. BaseTest()实例构造器执行

8. Inherited()实例构造器执行

原文地址:https://www.cnblogs.com/lbsong/p/1657944.html