C#中成员初始化顺序
2014-05-16 11:21
183 查看
一、成员初始化整体顺序
1.成员赋值初始化先于构造函数;2.成员赋值初始先从子类再到基类;
3.构造函数初始化先从基类再到子类;
4.静态成员初始化优先于实例成员初始化;
二、对类型静态成员构造的大致过程
1.分配静态成员的内存空间,此时空间存储数据为0;2.执行类的静态成员的初始化语句;
3.执行类的静态构造函数。
三、对类型实例成员构造的大致过程
1.分配实例成员的内存空间,此时空间存储数据为0;2.执行子类实例成员初始化语句;
3.执行基类实例化成员初始化语句;
4.执行基类构造函数;
5.执行子类构造函数;
四、同时有静态成员和实例成员的大致构造过程
1.执行子类静态成员初始化语句;2.执行子类静态构造函数;
3.执行子类实例成员初始化语句;
4.执行基类静态成员初始化语句;
5.执行基类静态构造函数;
6.执行基类实例成员初始化语句;
7.执行基类实例构造函数;
8.执行子类实例构造函数。
五、说明
1.C#中静态构造函数都是私有的,不能为其添加访问修饰符;2.只有创建类的实例或调用任何静态成员时才能激发静态构造函数;
3.调用一个未初始化类的静态成员时,他会先去初始化这个类的静态成员和静态构造函数。
相关文章推荐
- C#的类成员初始化顺序
- C# 小测试(一):类成员初始化与构造函数执行的顺序
- Enter C++让类成员字段在初始化列表中出现的顺序和他们被申明的顺序保持一致
- C#箴言:用静态构造函数初始化静态成员
- C#类的成员初始化顺序
- c#对象初始化顺序及C++对象初始化顺序
- c#类的成员初始化顺序
- 类的加载顺序以及静态成员初始化顺序
- Effective C# Item13:使用静态构造器初始化静态类成员
- C#类的成员初始化顺序
- 成员初始化的先后顺序
- 类成员的初始化顺序
- 类成员的初始化顺序
- 类的成员初始化顺序
- 类成员初始化与构造函数执行的顺序 转自:http://www.cnblogs.com/anderslly/archive/2008/07/12/why-do-initializers-run-in-the-opposite-order-as-constructors.html
- c#对象初始化顺序
- C++类成员的初始化顺序
- 类的成员初始化顺序
- Java类成员变量的初始化顺序
- C++ - 类成员初始化顺序