我一直在编写一个使用Web服务的应用程序,下载JSON格式的数据,将它反序列化为类。该服务是基于PHP的(我相信)。Inline Encapsulation停止工作
最近,网络服务已经有一个更新,对我的类声明有意想不到的后果。 直到最近,我一直在使用这种线为类变量
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; } }
感觉就像第一行开始递归调用设定的封装。
有谁知道为什么第一个停止工作?它抛出堆栈溢出异常的实际原因是什么?有没有办法设置Getter而不设置Setter内联,所以我不打算封装所有需要修改Getter的内容?
谢谢
在您的第一行中,当您调用'return consent_id.ToUpper();'时,递归调用getter。所以,在这种情况下使用备份是一个很好的做法。你不能设置一个吸气体没有设置一个setter身体 –
@GeorgeAlexandria在测试中,我们把ToUpper()拿出来,它没有改变。这是Setter也抛出异常。 – Seige
你测试了第一个例子还是第二个与后台字段? –