vb.net – .dispose()的最佳应用是什么

对于.dispose()方法的正确应用,我在.NET中从未完全掌握这一点.

说我有类似的东西

Public Class someClass()
  sub someMethod
    ' do some stuff tying up resources
  end sub
End Class

public class mainApp 
  dim _class as new SomeClass
  _class.someMethod()
End Class

在所有情况下,实施配置方法都是一种好的做法,如果是这样,应该在那里进行什么?

如果不是每个班级都应该有处理方法(我的直觉不应该说)应该采用什么类?我一直认为任何可能占用资源的东西(即连接,datareader等)都应该有一个.dispose()来取消分配这些资源.

另外,如何强制调用.dispose()方法?

解决方法

我强烈建议在MSDN上阅读 Cleaning Up Unmanaged Resources,它有关于何时使用Dispose以及如何正确实现IDisposable的文章.您的直觉本质上是正确的,因为您很少需要实现IDisposable,除非您的类使用非托管资源或者是实现IDisposable的对象的容器.

至于强制调用Dispose,当你正确实现IDisposable接口时,你会附加一个终结器,它调用Dispose来捕获那些忘记的落后者和异常类.

相关文章:

07001

Describes the implementation of the Dispose method for releasing unmanaged resources.

07002

Describes ways to ensure that the Dispose method is called,such as the C# using statement (Using in Visual Basic).

(编辑:添加了附加信息)

在你的例子中,你有SomeClass.SomeMethod做了一些工作,可能是一个资源.如果此资源不是类成员,则可以更好地将其包装在using-statement中,并忘记IDisposable的恶魔细节.

Public Class someClass()
  sub someMethod
    Using someResource As New ResourceType( arguments )
       ' no worries about IDisposable for someResource,as it is automatic
    End Using
  end sub
End Class

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...