C# 中的属性访问器递归是什么?我看到有关如何解决该问题的文章,但想要对其进行纯粹的技术定义。有关如何解决该问题的资源:C# 属性设置器主体,无需声明类级属性变量
1 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
如果您将 getter 和 setter 视为方法(它们实际上是后台的方法 - C# 只是向您隐藏了这一点),那么情况会变得更清楚。
每当您检索属性的值时,您都在调用 get 方法
每当设置属性的值时,都会调用 set 方法
因此,如果您有一个如下所示的属性:
public string MyProperty {
get {
return this.MyProperty;
}
set {
this.MyProperty = value;
}
}
这真的就像有这两种方法:
string get_MyProperty() {
return get_MyProperty();
}
void set_MyProperty(string value) {
set_MyProperty(value);
}
您会注意到,这两种情况都会导致无限递归,并以堆栈溢出结束。
所以不要那样做™
- 1 回答
- 0 关注
- 80 浏览
添加回答
举报
0/150
提交
取消