20140111-对象初始化过程

本文详细介绍了C#对象初始化的基本原则,包括变量与构造函数的顺序、静态化与实例化的先后、派生类与基类的初始化顺序等。同时强调了避免直接在构造函数中调用虚方法,推荐采用两阶段构建的方法来实现更为灵活和安全的对象创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C#对象初始化
1.先变量后构造函数。变量先被初始化,然后构造函数被执行
2.先静态化后实例化。当一个类被访问时,静态变量构造函数最先被初始化.接着是对象的实例化变量和构造函数被初始化
3.先派生类基类。对于变量和静态构造函数,派生对象在基对象之前被初始化.比如C类派生自B类,B类派生自A类,那么变量和静态构造函数被初始化次序是C-B-A.
4.除了实例构造函数。对于实例构造函数,基类构造函数在派生类构造函数之前执行,实例构造函数被执行次序是A-B-C.
5.不要假定变量的次序。Fields依据它们在源文件中的声明的顺序依次初始化.然而,自从程序员和工具可以随意安排变量的声明后,你不应该在依靠变量任何特别的次序初始化
6.对虚方法用两个阶段的构建。避免从一个构造器调用虚方法. 如果在初始化一个对象时需要调用一些虚方法,应在完整构造该对象的地方使用两阶段的构建,并随后调用已构造对象的初始化方法。

转载于:https://www.cnblogs.com/CharlesZHENG/p/4125069.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值