私はこれがコードのにおいであると感じています。これをもっとうまくやっているかもしれませんが、その場合は指摘してください。コンストラクタを持つ2つのクラスは、互いに参照するようになっていますか?
class main
{
void main()
{
object A
object B
A = new SystemA(ref B)
B = new SystemB(ref A)
}
}
class SystemA
{
SystemB B;
public SystemA (ref B)
{
this.B = B;
}
}
class SystemB
{
SystemA A;
public SystemA (ref A)
{
this.A = A;
}
}
基本的には、2つのクラスを互いに参照して初期化する必要があります。
初期化後に後でアクセスされるときに、2つの子クラスのクラスフィールドに対してこれは機能せず、null参照例外を生成します。
私はおそらく初期化の後にこれらを設定することができたことを認識していますが、これらの割り当てを初期化アクションとして表示するので、これを避けたいと思います。
恐ろしく複雑です。実際のコードを投稿してください。 –
これは、私がそれに遭遇するたびに、そのような構造の作成者を排除したいと思うほど多くのフープジャンプを必要とします。 – KevinDTimm
@Brian - これは私が参照しているものです。ここに入るトリックがあります(そして彼らは吸う)。 – KevinDTimm