我的代码是
public class Parent
{
public Parent(int i)
{
Console.WriteLine("parent");
}
}
public class Child : Parent
{
public Child(int i)
{
Console.WriteLine("child");
}
}
我收到错误:
Parent does not contain a constructor that takes 0 arguments.
我知道问题是 Parent 没有带 0 个参数的构造函数。但我的问题是,为什么我们需要一个零参数的构造函数?为什么没有它代码就不能工作?
最佳答案
由于您没有显式调用父构造函数作为子类构造函数的一部分,因此插入了对无参数父构造函数的隐式调用。该构造函数不存在,因此您会收到该错误。
要纠正这种情况,您需要添加一个显式调用:
public Child(int i) : base(i)
{
Console.WriteLine("child");
}
或者,您可以只添加一个无参数的父构造函数:
protected Parent() { }
关于C# 错误 : Parent does not contain a constructor that takes 0 arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7230544/