小编典典

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

c#

我的代码是

public class Parent
{

    public Parent(int i)
    {
        Console.WriteLine("parent");
    }
}

public class Child : Parent
{
    public Child(int i)
    {
        Console.WriteLine("child");
    }

}

我收到错误消息:

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

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


阅读 378

收藏
2020-05-19

共1个答案

小编典典

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

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

public Child(int i) : base(i)
{
    Console.WriteLine("child");
}

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

protected Parent() { }
2020-05-19