c# - 为什么在构造函数中使用属性时会出现堆栈溢出?

标签 c# properties constructor

我有一个非静态类,其中有几个属性,即 serverURL、serverPort 等,并且该类有一个构造函数。构造函数接受参数,然后使用这些参数来“设置”属性,初始化它们。这是代码:

public Server(string newServerAddress, int newServerPort) {

        serverAddress = newServerAddress;
        serverPort = newServerPort;
}

public string serverAddress {
    get {
        return serverAddress;
    }
    set {
        serverAddress = value;
    }
}
public int serverPort {
    get {
        return serverPort;
    }
    set {
        serverPort = value;
    }

出于某种原因,这给了我一个堆栈溢出错误,我不知道为什么。这是用于调用它的代码:

Server test = new Server("server.url.here",8080);

这段代码显然是由一个类绑定(bind)的,但我在这里省略了它。这是一个业余问题,我以前做过这样的事情,但我对发生的事情感到非常困惑,当我尝试在 visual studio 中调试它时,它告诉我它无法调试,大概因为它使用堆栈进行调试。

最佳答案

注意区分大小写。该属性正在自行返回。

public string serverAddress {
    get {
        return serverAddress; // recursing here
    }
}

关于c# - 为什么在构造函数中使用属性时会出现堆栈溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1806841/

相关文章:

css - 设置内联背景图像时保留 CSS 背景属性

properties - 在 Gradle 构建脚本中访问 Teamcity 构建号

c++ - 当我们开始覆盖内存时,对象的生命周期已经结束了吗?

javascript - JS中原始构造函数的用处

c# - .net MVC 中的网络摄像头集成

c# - LINQ "Where"条件 -> 更改属性值

c# - ASPX C# 代码安全

java - 为加载到 Spring 的 Props 文件中的属性自动修剪尾随空白

arrays - gfortran 中隐含 do 的数组构造函数的奇怪初始化行为

c# - 在 C# 应用程序中查找内存泄漏