如果在C#中继承,是否真的可以首先调用Child类构造函数而不是父类构造函数

时间:2014-05-08 18:18:53

标签: c# oop inheritance constructor

任何正文都可以帮我解释一下,如果在C#中继承,是否真的可以首先调用Child类构造函数而不是父类构造函数?

2 个答案:

答案 0 :(得分:5)

不可以在基类的构造函数之前执行派生构造函数中的代码。

如果您从构造函数something you shouldn't do调用虚方法,这通常只会出现问题。

答案 1 :(得分:0)

.NET框架试图保证在没有调用所有基类构造函数的情况下,对象不能暴露给外部世界。因此,在调用父构造函数之前,允许子类构造函数的内容存在严重限制。用C#编写的子类构造函数将在调用父构造函数之前评估字段初始化表达式,因此从技术上讲,子类构造函数在父类之前运行。不幸的是,目前,字段初始化表达式不允许做太多。