这个问题已经在这里有了答案 :
C#继承和默认构造函数 (4个答案)
4年前关闭。
简单的代码:
class foo { private int a; private int b; public foo(int x, int y) { a = x; b = y; } } class bar : foo { private int c; public bar(int a, int b) => c = a * b; }
Visual Studio抱怨bar构造函数:
bar
错误CS7036没有给出说法,对应于所需形式参数x的foo.foo(int, int)。
x
foo.foo(int, int)
什么?
问题在于基类foo没有无参数的构造函数。因此,您必须使用派生类的构造函数中的参数调用基类的构造函数:
foo
public bar(int a, int b) : base(a, b) { c = a * b; }