这是我的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,所以我的构造函数不应该设置半径的值吗?
答案 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); }