C#如何在子类中使用Parent类属性

时间:2012-08-19 14:27:55

标签: c#

我有以下类,其中包含具有属性Radius的Parent类Shapes,并且我将此属性访问到其子类(HeaxGon),但它在子类中给出了错误(get或set accessor expected)

请指教。     类形状     {         int _radius;

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


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

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分: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;
    }
}

答案 2 :(得分:1)

你写得很糟糕,它应该是这样的:

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;

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