类的初始化顺序
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()实例构造器执行