Webサービスを使用してJSON形式のデータをダウンロードし、クラスにデシリアライズするアプリケーションを作成しています。サービスはPHPベースです(私は信じています)。インラインカプセル化が動作を停止しました
最近、Webサービスで、クラス宣言に予期しない結果が生じた更新がありました。 最近まで私は、クラス変数の1
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; } }
にコードを変更しなければなりませんでした。
誰もが最初のものが動作を停止した理由を知っていますか?スタックオーバーフローの例外をスローする実際の理由は? Setterをインラインに設定せずにGetterを設定する方法はありますか?変更されたGetterが必要なすべてをカプセル化しないでください。
ありがとうございました
'return consent_id.ToUpper();'を呼び出すと、最初の行でgetterを再帰的に呼び出します。したがって、この場合に提出されたバッキングを使用することは良い習慣です。そしてセッター本体を設定しないとゲッター本体を設定できません –
@GeorgeAlexandriaテストでは、ToUpper()を取り出して変更しませんでした。それは例外をスローするセッターだった。 – Seige
最初の例または2番目の例をバッキングフィールドでテストしましたか? –