假设您有以下设计:
ClassA
ClassC
ClassB
Property: object of type ClassA
Property: object of type ClassC
如果ClassB
的对象类型为ClassA
,ClassA
是否有办法访问ClassB
的成员?换句话说,有一种方法是ClassA
(比如ClassA.GetVegetables()
),但ClassA
方法需要访问类型为ClassB
的{{1}}属性,那可能吗?
答案 0 :(得分:0)
看起来你正在将两个概念混合在一起:
ClassA是否可以调用 ClassB的任何方法取决于ClassA是否引用了ClassB(第一个概念)。这可以通过将ClassB的实例传递给ClassA的构造函数来实现。
一旦ClassA引用了ClassB的实例,它就只能访问标记为public
的ClassB方法。查看access modifiers
以获取更多信息。
答案 1 :(得分:0)
如果没有看到任何附加代码,最好的方法就是将所需信息作为参数传递给GetVegetables
方法。
理想情况下,您应该将所有必需的数据作为参数传递,以使方法非常自包含,而不依赖于某种全局状态。
这假设当前的设计是最佳的;通过更改设计细节可以解决这个问题,但如果没有看到更多代码,我们就无法分辨。