据我了解,一旦代码退出代码块,.NET 中的using语句就会调用IDisposable对象的Dispose()方法。
using
IDisposable
Dispose()
该using语句还有其他作用吗?如果没有,似乎以下两个代码示例可以实现完全相同的效果:
Using Con as New Connection() Con.Open() 'do whatever ' End Using Dim Con as New Connection() Con.Open() 'do whatever ' Con.Dispose()
无论谁确认我是对的,或者指出我错了并解释原因,我都会给最好的答案。请记住,我知道某些类 可以 在其Dispose()方法中 做不同的事情 。这个问题是关于using语句是否达到与调用对象的Dispose()方法完全相同的结果。
using 基本上等于:
try { // code } finally { obj.Dispose(); }
因此,Dispose()即使在块中的代码中引发了未处理的异常,它也具有调用的好处。