我们在进行VB程序设计的时候经常遇到这样的情况:
复制内容到剪贴板
代码:
dim tsr as CLASS_A
sub form_load()
tsr=new CLASS_A
end subtsr是个窗体级别的变量,对sub form_load是可见的。
这样我们就产生了一个tsr的实例。那么我们该怎么释放
这个变量呢?
大家都知道,一旦对象被实例化了以后就要产生内存的消耗
那么我们释放变量的目的就是要释放资源。有的朋友可能想
到了用这样的办法:tsr=nothing 来释放。
ok!假设tsr=nothing可以成功,那么我们把代码再改一下:
复制内容到剪贴板
代码:
public HAHA as CLASS_A
dim tsr as CLASS_A
sub form_load()
tsr=new CLASS_A
HAHA=tsr
end sub那么我们执行了tsr=nothing后,那系统资源CLASS_A的实例会被释放掉吗?
还好,我们只tsr=new CLASS_A了一次,那么我们这样:
复制内容到剪贴板
代码:
dim a as integer
for a=0 to 100
tsr=new CLASS_A
next
HAHA=tsr那么HAHA到底是不是指到了最后一个CLASS_A的实例呢??
最后的问题:对象产生多了,不知道如何释放,造成内存泄露。
vb没个无主对象的回收机制!