.NET - Return是否阻止对象处理

AGB*_*AGB 5 .net vb.net return function

给出以下代码:

  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
Run Code Online (Sandbox Code Playgroud)

Return是否会阻止执行功能块的其余部分,即关闭数据库连接以及当Using块完成时调用的隐含Dispose()?

Jon*_*eet 14

不,Using语句等同于Try/Finally语句 - 因此当执行离开块时执行处理,无论是通过到达块的末尾,正常返回还是通过异常.

Close但是,您不需要显式调用,因为您无论如何都要处理连接.