您的位置:首页 > 编程语言 > C#

C#中两个类之间有继承关系时的执行顺序~

2009-01-22 16:52 309 查看
当两个类之间有继承关系时,第一次构造子类的实例时,是按照如下顺序进行的:

子类的静态成员初始化语句

子类的静态构造函数

子类的非静态成员初始化语句

父类的静态成员初始化语句

父类的静态构造函数

父类的非静态成员初始化语句

父类的构造函数

子类的构造函数

为什么会这样呢?

事实上,出现上述顺序的原因是,在执行完子类的静态构造函数后(也就是第四步),程序会接着执行子类的构造函数,但是,此时,程序会先自动访问该构造函数继承的父类的构造函数(如果没有显式继承,那么就默认继承父类的默认构造函数,如果父类没有默认构造函数,那么会出现编译错误),而且,由于是第一次访问父类,因此会先运行静态成员初始化的代码和静态构造函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: