X
次のようなオブジェクトがあります。
X x1 = new X();
ここx1
には3つのプロパティがあります:
x1.a;
x1.b;
x1.c;
ここでa
、b
とc
は他のクラスのオブジェクトです。
これらすべてに関係なく、オブジェクト全体を設定x1
するnull
か、各プロパティを設定したい:
x1.a = null;
x1.b = null;
これを達成するための解決策はありますか?
X
次のようなオブジェクトがあります。
X x1 = new X();
ここx1
には3つのプロパティがあります:
x1.a;
x1.b;
x1.c;
ここでa
、b
とc
は他のクラスのオブジェクトです。
これらすべてに関係なく、オブジェクト全体を設定x1
するnull
か、各プロパティを設定したい:
x1.a = null;
x1.b = null;
これを達成するための解決策はありますか?
テル・ドント・アスクの原則を参照してください。オブジェクト "X" にそのプロパティについて問い合わせたり、オブジェクトのプロパティを管理したりしないでください。代わりに、オブジェクト X が自身を管理できるようにメソッドを作成します。
class X
{
//...
public void SetAllToNull()
{
this.a = null;
this.b = null;
this.c = null;
}
}
X x = new X();
//...
x.SetAllToNull();
なぜこれが必要なのかは別の問題です。すべてのオブジェクトの責任を慎重に設計して、アプローチを再考することをお勧めします。
参考に回答しました
.NET での使用後にオブジェクトを Null/Nothing に設定する
http://bytes.com/topic/c-sharp/answers/459431-setting-referenced-object-null