以下のコードは、InvalidOperationException をスローします: ConnectionString プロパティが初期化されていません。Load メソッドの Connection.Open() を呼び出す行で例外がスローされます。using ステートメントの代わりに try-finally ステートメントを使用すると、すべてが正しく機能します。using ステートメントで例外が発生する理由を説明できる人はいますか?
Public Class SomeEntity
Private _Connection As SqlClient.SqlConnection
Private _ConnectionString As String
Protected ReadOnly Property Connection() As SqlClient.SqlConnection
Get
If _Connection Is Nothing Then
_Connection = New SqlClient.SqlConnection(_ConnectionString)
End If
Return _Connection
End Get
End Property
Public Sub New(ByVal connectionString As String)
_ConnectionString = connectionString
End Sub
Public Sub Load(ByVal key As Integer)
Using Connection
Connection.Open()
...
End Using
End Sub
End Class