C#错误:父级不包含带有0个参数的构造函数

我的代码是


public class Parent

{


    public Parent(int i)

    {

        Console.WriteLine("parent");

    }

}


public class Child : Parent

{

    public Child(int i)

    {

        Console.WriteLine("child");

    }


}

我收到错误消息:


父级不包含采用0个参数的构造函数。


我知道问题是Parent没有0参数的构造函数。但是我的问题是,为什么我们需要一个零参数的构造函数?为什么没有它,代码不起作用?


qq_花开花谢_0
浏览 1517回答 3
3回答

慕神8447489

由于您没有显式调用父构造函数作为子类构造函数的一部分,因此对无参数的父构造函数进行了隐式调用。该构造函数不存在,因此您会收到该错误。要纠正这种情况,您需要添加一个显式调用:public Child(int i) : base(i){    Console.WriteLine("child");}或者,您可以只添加一个无参数的父构造函数:protected Parent() { } 

料青山看我应如是

您需要将孩子的构造函数更改为:public child(int i) : base(i){    // etc...}之所以收到错误,是因为您的父类的构造函数采用了一个参数,但没有将该参数从子级传递给父级。构造函数不在C#中继承,您必须手动链接它们。

千巷猫影

您需要将child类的构造函数更改为此:public child(int i) : base(i){    Console.WriteLine("child");}该部分: base(i)意味着int应该使用具有一个参数的基类的构造函数。如果缺少此属性,则将隐式告诉编译器使用不带参数的默认构造函数。因为在基类中不存在这样的构造函数,所以它给您这个错误。
打开App,查看更多内容
随时随地看视频慕课网APP