内联封装停止工作

Inline Encapsulation stopped working

我一直在编写一个使用 Web 服务的应用程序,下载 JSON 格式的数据,将其反序列化为 classes。该服务基于 PHP(我相信)。

Web 服务最近有一个更新,对我的 class 声明产生了意想不到的后果。 直到最近,我一直在将这一行用于 Class 变量之一

public string consent_id { get { return consent_id.ToUpper(); } set { consent_id = value; } }

它似乎运行良好。但是自从更新了他们的服务。这导致了堆栈溢出异常,我不得不将代码更改为

 string Consent_id;
 public string consent_id { get { return Consent_id.ToUpper(); } set { Consent_id = value; } }

感觉第一行开始递归调用set封装器了

有谁知道为什么第一个停止工作?它抛出堆栈溢出异常的真正原因是什么?有没有办法在不设置 Setter 内联的情况下设置 Getter,这样我就不会封装所有需要修改 Getter 的内容?

谢谢

第一个选项永远行不通。

它抛出堆栈溢出异常,因为在 getter 中你调用 getter,它调用 getter,它调用 getter,等等继续,直到你 运行 出栈 space。