类的初始化顺序

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()实例构造器执行

posted @ 2010-01-27 23:02  如斯夫  阅读(177)  评论(0编辑  收藏  举报