Текущая программа вызывает исключение 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");
}
}
}
почему 'new'-ing' A' и ' B' в конструкторе другого? Каковы причины этого? Что он должен делать? Вам просто нужен экземпляр 1 и 1B, и они ссылаются друг на друга? Без этой информации ваш вопрос просто: у меня есть класс 'class A {A() {new A(); }} 'и как его исправить? Нет значимого ответа –