2
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。

4

2 回答 2

8

x并且y是类的本地字段,experiment它们在继承的类中不可见,您可以使用默认值调用基本构造函数,例如:

public result(int z) : base(0,0) 

还请遵循Microsoft的通用命名约定,因此类名以大写字符开头。

编辑:


如果您的子类有一个构造函数来接收参数xand y,并且它使用以下值调用基类构造函数,那就更好了:

public result(int x, int y, int z) : base(x,y) 
{
    this.zCoord = z;
}
于 2013-10-19T18:10:54.383 回答
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;
}
于 2013-10-19T18:12:18.620 回答