次のようなコードを取ります:
Dim dt As New DataTable("Table")
Dim sda As New SqlDataAdapter(pQuery, pCon)
sda.SelectCommand.CommandTimeout = pCommandTimeout
sda.Fill(dt)
sda.Dispose()
Return dt
と:
Dim myconnection As SqlConnection = New SqlConnection(DBValues.m_sDBString)
myconnection.Open()
Try
Dim com As New SqlCommand(cmd, myconnection)
com.ExecuteNonQuery()
com.Dispose()
Catch ex As Exception
Throw ex
Finally
If myconnection.State = ConnectionState.Open Then
myconnection.Close()
myconnection.Dispose()
End If
End Try
Close() や Dispose() などを明示的に呼び出すことが過剰になっているのはいつですか? どうやら GC はほとんどの場合これを内部的に処理しますが、常にではありません (?)。これまでのところ、これが過剰な場合とそうでない場合を区別する方法、またはこれを明示的に行うこととGCに処理させることの違いについて、非常に明確で明確な説明を誰かが下したのを見たことがありません。誰かがこれを説明できますか?ありがとう!