我有一个像这样的对象X
:
X x1 = new X();
此处x1
有3个属性说:
x1.a;
x1.b;
x1.c;
此处a
,b
和c
是其他类别的对象
无论这些如何,我都想将整个对象x1
设置为null
或设置每个属性:
x1.a = null;
x1.b = null;
有没有解决办法来实现这个目标?
答案 0 :(得分:4)
请参阅Tell-Dont-Ask原则。不要向对象“X”询问它的属性并为对象管理它们。相反,创建一个方法,以便对象X可以自行管理:
class X
{
//...
public void SetAllToNull()
{
this.a = null;
this.b = null;
this.c = null;
}
}
X x = new X();
//...
x.SetAllToNull();
为什么你需要这是另一个问题。您可能需要重新考虑您的方法,仔细设计所有对象的responsibilities。
答案 1 :(得分:0)