内联封装停止工作
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。
我一直在编写一个使用 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。