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

Geo*_*rge 2 c# constructor properties

我有一个非静态类,其中我有几个属性,即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;
    }
Run Code Online (Sandbox Code Playgroud)

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

Server test = new Server("server.url.here",8080);
Run Code Online (Sandbox Code Playgroud)

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

And*_*ith 5

观察区分大小写.该物业正在返回.

public string serverAddress {
    get {
        return serverAddress; // recursing here
    }
}
Run Code Online (Sandbox Code Playgroud)