vb.net怎样释放用自定义类创建的控件
vb.net怎样释放用自定义类创建的控件,就像从未建立过一样比如我有一个类A,然后在主程序中执行以下指令
可是还是可以访问"测试"这个对象的资源,
Dim 控件A As New A
dim 测试 as Object '查看是否释放用
测试 = 控件A '测试和控件A,应该是一个对象,因为,随便改变那个对象的参数,另一个,都有反应
控件A = nothing
类 控件 对象 VB.NET --------------------编程问答-------------------- 你是什么意思,你是想拷贝一个对象的属性,让它们两个是相对独立的?
我不知道更好的办法,我以前也遇到你这种情况,我是重写了类的构造函数,传入一个对象,拷贝这个对象的所有数据。
--------------------编程问答-------------------- 不是拷贝属性,那个测试对象是用来看的,因为我这个自定义类的对象要不断的建立和删除,所以想删除时释放全部资源,否则,删除的没释放,又新建控件,不断积累,太浪费资源 --------------------编程问答-------------------- 用控件的dispose方法,如果是释放资源的话 --------------------编程问答-------------------- 自定义类的控件,没有dispose方法 --------------------编程问答-------------------- 那我就不知道了,我一般都是做些低级的,从一个控件继承过来的,所有都有dispose方法
--------------------编程问答-------------------- GC.collect.强制回收不用的。 所有的垃圾都会被过滤一遍。 --------------------编程问答-------------------- 能写个代码吗,谢谢 --------------------编程问答-------------------- 你用这个叫做“测试”的变量一直引用它,还空谈什么释放? --------------------编程问答-------------------- 同意8楼说法,还有就是你在自定义的类里实现IDisposable接口来清理占用的资源,这样在外部就可以调用dispose方法了 --------------------编程问答--------------------
是不是下面这样的,我现在用的就是下面这样的,但是执行类的Dispose方法,里面的属性还是可以访问,
Public Class Base
Implements IDisposable
' Field to handle multiple calls to Dispose gracefully.
Dim disposed as Boolean = false
' Implement IDisposable.
Public Overloads Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
Protected Overloads Overridable Sub Dispose(disposing As Boolean)
If disposed = False Then
If disposing Then
' Free other state (managed objects).
disposed = True
End If
End If
' Free your own state (unmanaged objects).
' Set large fields to null.
End Sub
Protected Overrides Sub Finalize()
' Simply call Dispose(False).
Dispose (False)
End Sub
End Class
补充:.NET技术 , VB.NET