为了账号安全,请及时绑定邮箱和手机立即绑定

C# 中的属性访问器递归是什么?

C# 中的属性访问器递归是什么?

C#
忽然笑 2023-09-16 20:17:33
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);

}

您会注意到,这两种情况都会导致无限递归,并以堆栈溢出结束。

所以不要那样做™


查看完整回答
反对 回复 2023-09-16
  • 1 回答
  • 0 关注
  • 47 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信