Das aktuelle Programm führt zu stackoverflow Ausnahme, die ich weiß warum. Wie könnte ich die zirkuläre Abhängigkeit hier vermeiden? Wie kann ich die drei Klassen unabhängig voneinander machen, obwohl die Klassen voneinander abhängig sind (stellen Sie sich einfach vor, dass die Methoden innerhalb dieser Klassen sich gegenseitig beziehen).Wie vermeidet man die zirkuläre Abhängigkeit in diesem Szenario?
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");
}
}
}
warum 'new'-ing' A' und ' B' im Konstruktor des anderen? Was sind die Gründe dafür? Was soll es tun? Sie wollen nur 1 A und 1B Instanz und sie beziehen sich aufeinander? Ohne diese Informationen ist Ihre Frage einfach wie folgt: Ich habe eine Klasse 'Klasse A {A() {new A(); }} 'und wie soll ich es beheben? Keine sinnvolle Antwort –