[英]Why it is a StackOverFlow Exception?
为什么下面的代码会抛出StackoverflowException
?
class Foo
{
Foo foo = new Foo();
}
class Program
{
static void Main(string[] args)
{
new Foo();
}
}
在 Main 创建一个新的 Foo 对象,调用它的构造函数。 在 Foo 构造函数中,您创建了一个不同的 Foo 实例,再次调用 Foo 构造函数。
这导致无限递归并以 StackOverflow 异常结束
走着瞧:
main
执行new Foo();
;new Foo()
创建新的Foo
实例,包括Foo foo
字段Foo foo = new Foo();
执行new Foo
(转到第 2 步)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.