繁体   English   中英

为什么是 StackOverFlow 异常?

[英]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 异常结束

走着瞧:

  1. 程序运行main执行new Foo(); ;
  2. new Foo()创建新的Foo实例,包括Foo foo字段
  3. Foo foo = new Foo(); 执行new Foo (转到第 2 步)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM