C# 为什么我的圆的值为零?
这是我的圆圈类代码C# 为什么我的圆的值为零?,c#,geometry,area,C#,Geometry,Area,这是我的圆圈类代码 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 {
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,所以我的构造函数不应该设置半径的值吗?您的
区域属性应该是:
public double Area
{
get { return Math.PI * Math.Pow(radius, 2); }
}
您不需要区域
字段。因为您从未在区域上调用setter。也许你想要这样的东西
class Circle
{
private double radius;
public Circle(double radius)
{
this.radius = radius;
}
public double Area
{
get { return Math.PI * Math.Pow(radius, 2); }
}
}
这将在每次请求时计算面积。我不确定您在本例中是否需要集(您没有使用它)
试一试
我认为这是因为当你调用“circle1.area”时,你没有计算面积。您将计算放在“集合”而不是“获取”中。始终最好存储最小值,并根据需要导出相关数量。在这里进行缓存会使您容易出错。正如你所发现的。另外,如果我想为3个圆创建一个数组,我该怎么做?只是好奇。我只知道基本类型数组的基本知识。
get { return Math.PI * Math.Pow(radius, 2); }