为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
qq_花开花谢_0 2019-10-17 15:51:16
我的代码是public class Parent{    public Parent(int i)    {        Console.WriteLine("parent");    }}public class Child : Parent{    public Child(int i)    {        Console.WriteLine("child");    }}我收到错误消息:父级不包含采用0个参数的构造函数。我知道问题是Parent没有0参数的构造函数。但是我的问题是,为什么我们需要一个零参数的构造函数?为什么没有它,代码不起作用?
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

由于您没有显式调用父构造函数作为子类构造函数的一部分,因此对无参数的父构造函数进行了隐式调用。该构造函数不存在,因此您会收到该错误。


要纠正这种情况,您需要添加一个显式调用:


public Child(int i) : base(i)

{

    Console.WriteLine("child");

}

或者,您可以只添加一个无参数的父构造函数:


protected Parent() { } 


查看完整回答
反对 回复 2019-10-17
?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

您需要将孩子的构造函数更改为:


public child(int i) : base(i)

{

    // etc...

}

之所以收到错误,是因为您的父类的构造函数采用了一个参数,但没有将该参数从子级传递给父级。


构造函数不在C#中继承,您必须手动链接它们。


查看完整回答
反对 回复 2019-10-17
?
千巷猫影

TA贡献1829条经验 获得超7个赞

您需要将child类的构造函数更改为此:


public child(int i) : base(i)

{

    Console.WriteLine("child");

}

该部分: base(i)意味着int应该使用具有一个参数的基类的构造函数。如果缺少此属性,则将隐式告诉编译器使用不带参数的默认构造函数。因为在基类中不存在这样的构造函数,所以它给您这个错误。


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 1423 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信