对于.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@R_404_6407@meMethod() End Class
在所有情况下,实施配置方法都是一种好的做法,如果是这样,应该在那里进行什么?
如果不是每个班级都应该有处理方法(我的直觉不应该说)应该采用什么类?我一直认为任何可能占用资源的东西(即连接,datareader等)都应该有一个.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@R_404_6407@meMethod做了一些工作,可能是一个资源.如果此资源不是类成员,则可以更好地将其包装在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。