从子类调用父类

时间:2013-10-19 18:09:02

标签: c# inheritance

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。

2 个答案:

答案 0 :(得分:8)

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

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

另请注意General Naming Conventions from Microsoft,因此类名以大写字母开头。

编辑:


如果您的子类具有接收参数xy的构造函数,并且它使用以下值调用基类构造函数会更好:

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;
}