m.e*_*son 5 .net c# stack-overflow stack design-patterns
我们都知道创建促进重用的小方法是很好的做法,这不可避免地会导致许多方法被放置在堆栈上.但是,是否有可能达到存在如此多嵌套方法调用而发生StackOverflow异常的情况?
接受的解决方案是否只是增加堆栈大小?
该文件指出说,"非常深或无限递归"过程中会发生这样的异常所以它肯定似乎是可能的,还是在.NET框架动态处理堆栈大小,我们呢?
我的问题可以总结如下:
是否有可能拥有这样一个设计良好的程序(就可重复使用的小方法而言),这是增加堆栈大小并因此使用更多资源的必要条件?
并不真地。我刚刚做了一个非常快速的测试,在 15,000 次嵌套调用后出现 StackOverflowException。
由于您拥有的方法数量巨大,您不可能编写非递归嵌套 15,000 次的代码。
显然,确切的数量取决于您在堆栈上分配的许多函数局部变量。但无论实际数字是多少,它都远远不足以实现您的建议。