0 .net c# class software-design .net-core
什么是 C# 中的属性访问器递归?我看到有关如何解决它的文章,但想要它是什么的纯技术定义。
有关如何解决它的资源:
如果您将 getter 和 setter 视为方法(它们实际上是后台的方法 - C# 只是对您隐藏了它),则它会变得更加清晰。
因此,如果您有一个如下所示的属性:
public string MyProperty {
get {
return this.MyProperty;
}
set {
this.MyProperty = value;
}
}
Run Code Online (Sandbox Code Playgroud)
这真的很像拥有这两种方法:
string get_MyProperty() {
return get_MyProperty();
}
void set_MyProperty(string value) {
set_MyProperty(value);
}
Run Code Online (Sandbox Code Playgroud)
您会注意到这两种情况都会导致无限递归,并以堆栈溢出结束。
所以不要那样做™