我可以访问内部类中的外部类对象

我有三个这样的课程。

class A { public class innerB { //Do something } public class innerC { //trying to access objB here directly or indirectly over here. //I dont have to create an object of innerB, but to access the object created by A //ie innerB objInnerB = objB; //not like this innerB objInnerB= new innerB(); } private innerB objB{get;set;} **//Private** public A() { objB= new innerB(); } } 

我想访问由类A创建的类C中的类B的对象。是否有可能以某种方式对类C中的类A的对象进行更改。我可以通过创建事件或无论如何获得A类的对象。

编辑:我在提出上述问题时犯了错误。 在A中创建的B的对象是私有的而不是公共的

通过创造事件是否有可能做到这一点

无论如何,我能够提出一个可以由A类处理的事件,那么我的问题就可以解决了。

如果我正确地读你,你想在innerC中访问类A的objB属性而不传递它。

这不是C#内部类的工作原理,如本文所述: C#嵌套类类似于C ++嵌套类,而不是Java内部类

如果你想从innerC访问A.objB那么你将不得不以某种方式将类A传递给innerC。

您需要将InnerClass的引用传递给InnerClass ,可能在构造函数中,如:

 public class OuterClass { //OuterClass methods public class InnerClass { private OuterClass _outer; public InnerClass(OuterClass outer) { _outer = outer; } } } 

然后,您可以在所有InnerClass方法中使用该引用。

由于类B与类C在同一范围内,即在类A中,您将能够从嵌套类型C实例化嵌套类型B并使用它。