从Property Objects访问父类属性

时间:2014-01-09 01:18:19

标签: c#

假设您有以下设计:

ClassA

ClassC

ClassB
    Property: object of type ClassA
    Property: object of type ClassC

如果ClassB的对象类型为ClassAClassA是否有办法访问ClassB的成员?换句话说,有一种方法是ClassA(比如ClassA.GetVegetables()),但ClassA方法需要访问类型为ClassB的{​​{1}}属性,那可能吗?

2 个答案:

答案 0 :(得分:0)

看起来你正在将两个概念混合在一起:

  • 引用对象的实例
  • 访问对象的成员/方法/属性的权限

ClassA是否可以调用 ClassB的任何方法取决于ClassA是否引用了ClassB(第一个概念)。这可以通过将ClassB的实例传递给ClassA的构造函数来实现。

一旦ClassA引用了ClassB的实例,它就只能访问标记为public的ClassB方法。查看access modifiers以获取更多信息。

答案 1 :(得分:0)

如果没有看到任何附加代码,最好的方法就是将所需信息作为参数传递给GetVegetables方法。

理想情况下,您应该将所有必需的数据作为参数传递,以使方法非常自包含,而不依赖于某种全局状态。

这假设当前的设计是最佳的;通过更改设计细节可以解决这个问题,但如果没有看到更多代码,我们就无法分辨。