我的理解是,一旦代码退出块,.NET中的.NET调用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()方法完全相同的结果。
发布于 2012-06-11 16:52:38
两者的区别在于,如果抛出一个异常
Con.Open()
'do whatever不会调用Con.Dispose。
我不了解VB语法,但是在C#中,等价的代码应该是
try
{
con = new Connection();
// Do whatever
}
finally
{
if (con != null) con.Dispose();
}https://stackoverflow.com/questions/10984336
复制相似问题