当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,