我如何修复此 class 中的 "Stack overflow" 错误

How can I fix "Stack overflow" error in this class

“直径”的构造函数和 setter 之间似乎存在冲突。 当我尝试定义 Sphere 对象时出现错误。

using System;

namespace Challenge6
{
    class Sphere
    {
        public double Diameter
        {
            get => Diameter;
            set => Diameter = value;
        }
        public double Volume => (4.0 / 3.0) * Math.PI * Math.Pow(Diameter, 3) / 8.0;
        public double Surface => 4 * Math.PI * Math.Pow(Diameter, 2) / 4.0;
        public Sphere (double dia)
        {
           Diameter = dia;
        }
    }
}

如果我实例化你的 class 并请求 Diameter 的值 属性,它会转到 Diameter 的“get”方法,returns Diameter 属性 - 为了做到这一点,转到 Diameter 的“get”方法,returns Diameter 属性,哪个....你现在看到问题了吗?你最终会得到无限递归。

您是否有任何特殊原因不只是编写标准的自动实现 属性?

public double Diameter { get; set; }

会满足您的所有需求。