首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net如何把对象真正的立即释放掉

2013-03-17 
vb.net怎么把对象真正的立即释放掉啊本帖最后由 doudou798 于 2013-02-21 00:02:09 编辑我有一个Button叫

vb.net怎么把对象真正的立即释放掉啊
本帖最后由 doudou798 于 2013-02-21 00:02:09 编辑 我有一个Button叫测定,点击后执行


Dim a as Object = Nothing
Dim b as Object = Nothing

a= nbobject
b= a.createsomething

If MessageBox.Show("Send?", "Warning", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = System.Windows.Forms.DialogResult.OK Then
b.go()
Else
b=nothing
a=nothing
Return
End If
// ....
b=nothing
a=nothing

如果弹出窗口点击的是OK的话,运行完后再点击Button测定,可以继续循环使用。但是如果弹出窗口点击的是Cancel的话,返回后再点击测定就不能使用了。错误提示object variable or With block variable not set 接着再次点击测定,又可以使用了。我推测应该是a和b没有释放完。但是最后运行到结尾的这种释放就可以,为什么呢?
[解决办法]

Sub RunTest()
    '如果还有问题,请调试程序,看看a,b得到的值是否存在。
    '问题有可能在你赋值过程中发生的。
    Dim a = nbobject
    Dim b = a.createsomething    
    Dim ret = MessageBox.Show("Send?", "Warning", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)  
    If ret = System.Windows.Forms.DialogResult.OK Then
        b.go() 
    Else
        Return
    End If
    ' .... 
    b=nothing 
    a=nothing
End Sub

热点排行