《科普C执行顺序》由会员分享,可在线阅读,更多相关《科普C执行顺序(3页珍藏版)》请在金锄头文库上搜索。
1、C# 类的初始化顺序继承类的static数据成员的初始化器, 继承类的static构造器 (在类名, 第一次被引用时, 调用, 如果, 没有这个构造器, 那么static数据成员何时被初始化, 是不可预测的)继承类的实例型数据成员的初始化器在执行继承类的构造器的内容之前; 基类的static数据成员 的初始化器 即 static int a = 1; / 类数据成员的定义基类的static 构造器 ,(如果,基类的类名, 先于继承类被引用, 那么先执行基类的static构造器)基类的实例型数据成员的初始化器基类的构造器接着执行继承类的构造器的内容;Example : public class
2、Base A: private static int Number = 12; B: private int localNumner = 1; C: static Base() / D: public Base() public class Child : Base E: private static int ChildNumber = 14; F: private int local_child_number = 7; G: static Child() / H: public Child() I: / Child child = new Child();初始化顺序为E G F H A C
3、B D I;static构造器的调用时刻是, 第一次引用该类的类名;public class Test static Test() public staitc int Account get return 1; / 只是举例 public static int GetAccount() return 1; public class Nested public delegate void Add(); 当 X1: Test.Account(); X2: Test a = new Test(); X3: Test.GetAccount(); X4: Test.Nested p = new Test.Nested(); X5: Test.Add a = new Add(someMethods); X1, X2, X3, X4, X5 , 只要第一次出现其中的某一个; 就调用Test的 static构造器