.NET - 不会返回prevent对象处理对象、NET、prevent

2023-09-04 00:44:03 作者:我不需要你奢侈给我的心,

由于以下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

请问返回prevent执行,即数据库连接的关闭和隐含的Dispose()在使用块结束时调用的功能块的其余部分?

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?

推荐答案

没有,一个 使用语句相当于一个Try/Finally声明 - 所以处置被执行为执行离开该块,不管是通过到达该块的末端,正常返回,或经由一个异常

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.