为什么我的圈子值为零?

时间:2013-11-07 19:31:08

标签: c# geometry area

这是我的Circle类代码。

class Circle
{
    private double radius;
    private double area;

    public Circle(double radius)
    {
        this.radius = radius;
    }

    public double Area
    {
        set { area = Math.PI * Math.Pow(radius, 2); }
        get { return area; }

    }
}

这是测试代码。

    Circle circle1 = new Circle(3);

    MessageBox.Show("Circle 1 Area: " + circle1.Area);

因此,出于某种原因,当我使用MessageBox.Show()时,它似乎给我的值为零。我给圆圈赋值为3,所以我的构造函数不应该设置半径的值吗?

3 个答案:

答案 0 :(得分:6)

您的Area财产应为:

public double Area
{
    get { return Math.PI * Math.Pow(radius, 2); }
}

,您不需要area字段。

答案 1 :(得分:6)

因为你还没有在Area上调用过setter。也许你想要这样的东西呢?

class Circle
{
    private double radius;

    public Circle(double radius)
    {
        this.radius = radius;
    }

    public double Area
    {
        get { return Math.PI * Math.Pow(radius, 2); }    
    }
}

这将在每次请求时计算区域。

答案 2 :(得分:1)

我不确定在这个例子中你需要set(你没有使用它)

尝试

    get { return  Math.PI * Math.Pow(radius, 2); }