以下是我在一次采访中遇到的代码段。
public class ClassA
{
public void Method1()
{
ClassB c = new ClassB();
c.Method2();
}
}
public class ClassB
{
public void Method2()
{
ClassA c = new ClassA();
c.Method1();
}
}
class Program
{
static void Main(string[] args)
{
ClassA c = new ClassA();
c.Method1();
}
}
问题是,防止这种情况的最佳方法是什么?程序正在崩溃,因为它循环到无限循环。
答案 0 :(得分:2)
你没有方法1调用方法2和方法2调用方法1没有一些警卫告诉他们什么时候停止。这就像没有停止条件的递归。
没有人可以指导你没有更多细节。
答案 1 :(得分:0)
您需要通过设计更改来解决循环依赖关系。解决循环依赖的第一步是引入接口,但这只会掩盖可能的错误设计。检查循环依赖的这些示例:https://www.codeproject.com/Articles/616344/What-is-Circular-dependency-and-how-do-we-resolve