.NET - Does Return prevent objects disposing
.net, function, return, vb.net
Solution
No, a `Using` statement is equivalent to a `Try`/`Finally` statement - so the disposal is executed as execution leaves the block, whether that's by reaching the end of the block, returning normally, or via an exception.
You don't need the explicit `Close` call though, as you're disposing of the connection anyway.
Problem
Given the following code: ``` Function GetSomething() As Integer Using dbConn As New SqlConnection("Connection_String") dbConn.Open() Using dbCmd As New SqlCommand(" SELECT SOMETHING ....", dbConn) Return Integer.Parse(dbCmd.ExecuteScalar()) End Using dbConn.Close() End Using End Function ``` Will the Return prevent execution of the remainder of the function block i.e. the closing of the database connection and the implied Dispose() called when the Using block finishes?