Ale*_*rte 3 c# inheritance multiple-constructors inherited-constructors
我希望子类使用其父类的构造函数.但似乎我总是需要在子类中再次定义它们才能使它工作,如下所示:
public SubClass(int x, int y) : base (x, y) {
//no code here
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道我是不是在父类中正确地声明了构造函数,或者根本没有直接的构造函数继承?
你没有做错任何事.
在C#中,实例构造函数不会被继承,因此在继承类型上声明它们并链接到基础构造函数是正确的方法.
根据规范§1.6.7.1:
与其他成员不同,实例构造函数不是继承的,并且除了在类中实际声明的实例之外,没有实例构造函数.如果没有为类提供实例构造函数,则会自动提供没有参数的空构造函数.