我是靠谱客的博主 犹豫背包,最近开发中收集的这篇文章主要介绍C#中两个类之间有继承关系时的执行顺序~,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

http://www.cnblogs.com/zyh-nhy/archive/2009/01/22/1380000.html

 

当两个类之间有继承关系时,第一次构造子类的实例时,是按照如下顺序进行的:

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

2. 子类的静态构造函数

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

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

5. 父类的静态构造函数

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

7. 父类的构造函数

8. 子类的构造函数

 

为什么会这样呢?

 

事实上,出现上述顺序的原因是,在执行完子类的静态构造函数后(也就是第四步),程序会接着执行子类的构造函数,但是,此时,程序会先自动访问该构造函数继承的父类的构造函数(如果没有显式继承,那么就默认继承父类的默认构造函数,如果父类没有默认构造函数,那么会出现编译错误),而且,由于是第一次访问父类,因此会先运行静态成员初始化的代码和静态构造函数。

最后

以上就是犹豫背包为你收集整理的C#中两个类之间有继承关系时的执行顺序~的全部内容,希望文章能够帮你解决C#中两个类之间有继承关系时的执行顺序~所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部