为什么我的圈子值为零?

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

因为你还没有在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); } } } 

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

您的Area属性应为:

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

而且你不需要area字段。

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

尝试

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