-1

我有以下类,其父类 Shapes 具有属性 Radius,我正在将此属性访问到其子类(HeaxGon),但它在子类中给我错误(预期获取或设置访问器)

请指教。

class Shapes
{
    int _radius;

    public int Radius
    {
        get { return _radius; }
        set { _radius = value; }
    }
}

class HeaxGon:Shapes
{
    int points;
    public void SetRadius
    {
        **Radius=20;**
    }
}
4

3 回答 3

3

我猜你正在尝试创建一个名为 的函数SetRadius,在这种情况下,它应该是这样的:

public void SetRadius(int radius)
{
    this.Radius = radius;
}

或者,如果您真的想20在所有情况下都将其设置为:

public void SetRadius()
{
    this.Radius = 20;
}
于 2012-08-19T14:31:38.590 回答
2

你写的不好,应该是这样的:

class Shapes
{
    int _radius;

    public int Radius
    {
        get { return _radius; }
        set { _radius = value; }
    }
}


class HeaxGon:Shapes
{
    int points;

    public void SetRadius()
    {
        Radius=20;
    }
}

没有必要像其他人建议的那样称呼“这个”。

或者简单地使用您已经在基类中公开的属性

HeaxGon hg = new HeaxGon();
hg.Radius = 20;

这将调用您在基类(形状)中指定的设置器。

于 2012-08-19T14:34:07.757 回答
1

进行保护,_radius然后简单地调用this.Radius子类。所以:

public class Shape
{
    protected int _radius;

    public int Radius
    {
        get { return _radius; }
        set { _radius = value; }
    }
}

public class Hexagon : Shape
{
    int _points;

    public void SetRadius(int radius)
    {
        this.Radius = radius;
    }
}
于 2012-08-19T14:30:59.457 回答