0

X次のようなオブジェクトがあります。

 X x1 = new X();

ここx1には3つのプロパティがあります:

x1.a;
x1.b;
x1.c;

ここでabcは他のクラスのオブジェクトです。
これらすべてに関係なく、オブジェクト全体を設定x1するnullか、各プロパティを設定したい:

x1.a = null;
x1.b = null;

これを達成するための解決策はありますか?

4

2 に答える 2

4

テル・ドント・アスクの原則を参照してください。オブジェクト "X" にそのプロパティについて問い合わせたり、オブジェクトのプロパティを管理したりしないでください。代わりに、オブジェクト X が自身を管理できるようにメソッドを作成します。

class X
{
//...
  public void SetAllToNull()
  {
    this.a = null;
    this.b = null; 
    this.c = null;    
  }
}

X x = new X();
//...
x.SetAllToNull();

なぜこれが必要なのかは別の問題です。すべてのオブジェクトの責任を慎重に設計して、アプローチを再考することをお勧めします。

于 2013-08-17T08:44:19.247 に答える