Tar*_*rik -1 c# stack-overflow
我正在编写一个类,它递归地实例化自己,以便将XSD解析为另一种类型的XSD.它从互联网上下载并遍历每个元素,如果其中一个元素complexType位于另一个元素中,URI那么它只是通过创建自身实例之一来做同样的事情.
但是当XSD如此庞大且有许多外部链接时,今天我的课程因为Stackoverflow异常而崩溃了.
我决定将一些实例方法Helper.cs作为静态成员放到另一个class()中,现在从解析器类中调用它们.
但我想知道这是一个很好的解决方案,可以解决Stackoverflow异常吗?我知道如何将实例方法放入堆栈框架中,但静态方法是否会以相同的方式处理?它会导致任何Stackoverflow异常吗?
实例方法和静态方法之间的唯一区别是实例方法需要额外的隐藏this参数.(实际上,实例方法也可以virtual,但这在这里没有任何区别)
它们同样容易受到堆栈溢出的影响.
如果要避免大输入的堆栈溢出,请不要使用递归.
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |