当前程序导致stackoverflow异常,我知道为什么。我怎样才能避免这里的循环依赖。我怎样才能让这三个类彼此独立,尽管这些类是相互依赖的(假设这些类中的方法互相引用)。如何在这种情况下避免循环依赖?
namespace CircularDependency_1
{
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = new B();
Console.WriteLine("executed");
Console.ReadLine();
}
}
public class B
{
public A a;
public B()
{
a = new A();
Console.WriteLine("Creating B");
}
}
public class A
{
public B b;
public A()
{
b = new B();
Console.WriteLine("Creating A");
}
}
public class C
{
public A a;
public B b;
public C()
{
a = new A();
b = new B();
Console.WriteLine("Creating C");
}
}
}
为什么'新'''A'和' B'在另一个的构造函数?它背后的理由是什么?它期望做什么?你只需要1个A和1B实例,它们是相互引用的?如果没有这些信息,你的问题就像:我有一个类class A {A(){new A(); }}'我应该如何解决它?没有意义的答案 –