5

给定以下代码:

  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

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

4

1 回答 1

14

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

不过,您不需要显式Close调用,因为无论如何您都在处理连接。

于 2013-03-12T11:49:52.633 回答