请问创建类内存有关问题
请教创建类内存问题小弟以前写VB6的,最近用VB2008遇到个问题,请教下如果我定义了一个类,作为子函数的返回
请教创建类内存问题
小弟以前写VB6的,最近用VB2008遇到个问题,请教下
如果我定义了一个类,作为子函数的返回值,在主程序中循环调用子函数的话,最后会不会内存溢出??,代码没什么功能意义,我只想知道,是否要delete掉new对象的内存,系统是否自己释放了空间??如果是,是在什么时候释放的??貌似C#不用自己delete
VB.NET code Function GetHEX() As ReHEX Dim R_HEX As New ReHEX R_HEX.HEX_H = 100 Return R_HEX End FunctionPublic Class ReHEX Public HEX_H As IntegerEnd Class
[解决办法]C#和java有内存回收机制,要溢出是比较难的。
[解决办法]VB.net也会自动回收,但是要等一会儿系统检测到所用对象没用了才会自动回收
所以你最好在循环中不用的时候加上
R_HEX = nothing
有可能的话最好在ReHEX类的实现IDisposable接口,把类里需要释放的代码写在Dispose方法里
循环里释放时调用下面两句代码
R_HEX.Dispose()
R_HEX = nothing
[解决办法]Dim temp,temp1 As ReHEX
temp=GetHEX()
temp1=GetHEX()
'这句话调用完毕是不是,子函数中的R_HEX就自动释放了?
'我只要在主程序中调用
temp.IDispose()
temp = Nothing
temp1.IDispose()
temp1 = Nothing
上面代码就可以了,子函数你要把对象返回出去,所以子函数内部释放不了,只能在外面释放