C# 如何修复System.StackOverflow异常?
我使用了两个类,我需要发送/接收方法和变量。但是当我创建这个类的实例时,它会给我一个C# 如何修复System.StackOverflow异常?,c#,class,exception,C#,Class,Exception,我使用了两个类,我需要发送/接收方法和变量。但是当我创建这个类的实例时,它会给我一个System.StackOverflowException 如何解决这个问题 这是我的代码: class Setup1 { Setup2 set2 = new Setup(); int a = 5; public int myMethod(); { set2.b = a + 10; return set2.b; } } class Setup2 {
System.StackOverflowException
如何解决这个问题
这是我的代码:
class Setup1
{
Setup2 set2 = new Setup();
int a = 5;
public int myMethod();
{
set2.b = a + 10;
return set2.b;
}
}
class Setup2
{
Setup1 set1 = new Setup();
public int b = 0;
void Show()
{
MessageBox.Show(set1.myMethod());
}
}
你有一个无限递归
在
Setup2()
的构造函数中,调用Setup1()的构造函数。在这里,您可以无限地调用Setup2()
的构造函数,依此类推。内存耗尽,堆栈溢出。似乎有循环构造函数调用导致堆栈溢出异常 你使用调试器了吗?设置断点?单步完成你的代码?堆栈溢出Eception通常意味着没有结束条件的递归调用。您的代码中有一些输入错误(或者代码不完整),它将无法编译<代码>设置
=>设置2
等等。我应该做什么?因为我需要为每个类创建类对象,因为我需要使用每个类的方法和变量来考虑您的总体设计。不要无缘无故地在另一个构造函数中调用一个构造函数。您可以有一个中心位置,在那里构建所需的所有类。