三个班级之间的循环参考

pch*_*jer -1 c# class circular-reference

我有三个班级,他们之间有一个循环引用.

class A 
{
    public A()
    {
        B obj = new B();
    }
}
class B
{
    public B()
    {
        C obj = new C();
    }
}
class C
{
    public C()
    {
        A obj = new A();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我创建一个对象时A,它会抛出一个异常.
我如何创建循环引用彼此的类实例?

Jon*_*eet 5

当我创建A的对象时,它会抛出异常

是的,它会的.创建A创建一个新的B,创建一个新的C,创建一个新的A等.

我怎么能解决循环引用.

大概你想要C构造函数知道原始的A?如果是这样,有两种选择:

  • 分别构建所有三个,然后告诉他们彼此.这要求类型是可变的.
  • thisA构造函数传递给构造B函数,然后将它从B构造函数传递给C构造函数.这在允许this逃避A构造函数方面是令人讨厌的,应该非常谨慎地完成.(B并且C在它有机会完成初始化之前,不应该调用实例上的任何方法.)

  • 男人你快速打字. (5认同)