-1

プロパティ Radius を持つ Parent クラス Shapes を持つ次のクラスがあり、このプロパティにその子クラス (HeaxGon) にアクセスしていますが、子クラスでエラーが発生します ( get または set アクセサーが必要です)

お知らせ下さい。

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;

これにより、基本クラス (Shapes) で指定したセッターが呼び出されます。

于 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 に答える