读书人

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

发布时间: 2013-03-17 13:48:31 作者: rapoo

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

读书人网 >VB Dotnet

热点推荐