class experiment
{
int xCoord = 0;
int yCoord = 0;
public experiment(int x, int y) {
this.xCoord = x;
this.yCoord = y;
}
}
class result :experiment{
int zCoord = 0;
public result(int z) : base(x,y)
{
this.zCoord = z;
}
}
任何人都可以帮我解决这个简单的问题。我有一个错误base(x,y)
它表示当前上下文中不存在名称'x',也适用于y。
答案 0 :(得分:8)
x
和y
是类experiment
的本地字段,它们在继承的类中不可见,您可以使用默认值调用基础构造函数,如:
public result(int z) : base(0,0)
另请注意General Naming Conventions from Microsoft,因此类名以大写字母开头。
编辑:
如果您的子类具有接收参数x
和y
的构造函数,并且它使用以下值调用基类构造函数会更好:
public result(int x, int y, int z) : base(x,y)
{
this.zCoord = z;
}
答案 1 :(得分:4)
结果类的构造函数中没有x,y。
你传递给你的构造函数z,但告诉你的基础构造函数接收x和y。虽然当时没有x和y。
试试这个:
public result(int z, int x, int y) : base(x,y)
{
this.zCoord = z;
}
或设置修正值(无变量):
public result(int z) : base(0, 0)
{
this.zCoord = z;
}