2011-02-12 82 views
6

它不是继承,它不是嵌套类,我不知道它是什么,这是什么使我在这里。c# - 创建的对象能够访问创建它的对象的成员

我写一个程序,这是在高级别功能:

的Main()创建 'A()' 类型的对象的数组 'A()的构造函数创建20“B() ''objects 'B()'构造函数创建4'C()'对象

'B()'想要使用'A()'的一些公共成员,并且'C'使用'A()'和'B()'的一些公共成员

换句话说,A是控制记录,B是20个命令的列表并且每个命令具有达4c onditions。现在C()应该能够验证条件,B()应该能够执行命令基于C()的验证和A()应该知道什么时候所有的B完成

所以这个想法是某些对象会被派生出来,他们应该能够使用创建它们的对象中的成员。我可以在构造函数中传递信息,但这很乏味。有一个很好的设计能够做到上述。

任何人都可以帮忙吗?

回答

8

我可以在构造函数中传递信息,但会变得单调乏味。

这是一个非常有效的手段,有这种行为和一个非常常见的模式。单调乏味的程度很低,特别是如果你设计你的代码干净。它基本上改变)一行代码从B bInstance = new B();B bInstance = new B(this);

A(当所有B的完成

我会建议使用事件来处理这应该以某种方式知道了。 B可以包括每个A预订的“完成”事件。这将使其知道确切的事情何时完成。