私はこのようなクラスを3つ持っています。
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();
}
}
クラスAで作成されたクラスCのクラスBのオブジェクトにアクセスしたいのですが、クラスCのクラスAのオブジェクトに何らかの変更を加えることは可能ですか?イベントを作成するなどしてクラスAのオブジェクトを取得できますか?.
編集:上記の質問をする際の私の間違い。Aで作成されたBのオブジェクトはパブリックではなくプライベートです
イベントを作成してこれを行うことは可能ですか
とにかくクラスAで扱えるイベントを発生させることができれば問題は解決します。
私があなたを正しく読んでいるなら、それを渡さずに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;
}
}
}
その後、すべてのInnerClass
メソッドでその参照を使用できます。