2016-10-03 41 views
0

这段代码有什么问题?asp.net vb.net可以任何一个解释出了什么问题?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim i As Integer = 0 
    Do 
     Response.Write("hello") 
    Loop While i < 5 
End Sub 

我有错误

System.OutOfMemoryException was unhandled 
Insufficient memory to continue the execution of the program. 

任何人都可以解释为什么我有错误?

+3

你永远不会增加我。所以你的循环永远持续 –

+0

@DavidCram这也是我的第一个想法,但我无法弄清楚为什么会导致'OutOfMemoryException'。我想知道是否缓冲了Response.Write输出,并且他最终将为该缓冲区提供任何可用的内存。 –

+0

@DavidCram thanx它是解决我的问题 –

回答

2

这是你的代码的固定版本:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim i As Integer = 0 
    Do 
     Response.Write("hello") 
     i = i + 1 
    Loop While i < 5 
End Sub 
1

所以你的问题是“为什么内存不足”。因为.NET Framework只能访问这么多的内存。从本质上说,你的循环说“不断烧毁内存,直到电脑崩溃或耶稣回来”。由于没有发生Armageddon,并且Framework可以防止计算机崩溃,所以您的预期结果将会失败,而当您使用没有终止子句的循环或增量来刻录内存时,会导致内存不足错误,从而永远无法循环(或者直到框架阻止您崩溃计算机)。 ;-)

+0

哇谢谢错误的解释:) –

相关问题