It has been my understanding that the using statement in .NET calls an IDisposable object’s Dispose() method once the code exits the block.
Does the using statement do anything else? If not, it would seem that the following two code samples achieve the exact same thing:
Using Con as New Connection()
Con.Open()
'do whatever '
End Using
Dim Con as New Connection()
Con.Open()
'do whatever '
Con.Dispose()
I will give the best answer to whoever confirms that I am correct or points out that I am wrong and explains why. Keep in mind that I am aware that certain classes can do different things in their Dispose() methods. This question is about whether or not the using statement achieves the exact same result as calling an object’s Dispose() method.
usingis basically the equivalent of:So it also has the benefit of calling
Dispose()even if an unhandled exception is thrown in the code within the block.