Sha*_*pta 19 c# oop delegates class event-handling
我有三个这样的课程.
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
//i.e.
innerB objInnerB = objB;
//not like this
innerB objInnerB= new innerB();
}
private innerB objB{get;set;} **//Private**
public A()
{
objB= new innerB();
}
}
Run Code Online (Sandbox Code Playgroud)
我想访问由类A创建的类C中的类B的对象.是否有可能以某种方式对类C中的类A的对象进行更改.我可以通过创建事件或无论如何获得A类的对象.
编辑:我在提出上述问题时的错误.在A中创建的B的对象是私有的而不是公共的
通过创造事件是否可能做到这一点
无论如何,我能够提出一个可以由A类处理的事件,那么我的问题就可以解决了.
And*_*son 22
如果我正确地读你,你想在innerC中访问类A的objB属性而不传递它.
这不是C#内部类的工作方式,如本文所述: C#嵌套类类似于C++嵌套类,而不是Java内部类
如果你想从innerC访问A.objB那么你将不得不以某种方式将类A传递给innerC.
你需要传递的参考OuterClass来InnerClass,也许是在构造函数中,如:
public class OuterClass
{
//OuterClass methods
public class InnerClass
{
private OuterClass _outer;
public InnerClass(OuterClass outer)
{
_outer = outer;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以在所有InnerClass方法中使用该引用.