在 Microsoft.NET (VB) 中编写函数以避免内存泄漏的最佳方法是什么。我一直遵循这种风格:
Public Sub TestMemoryLeak()
Dim testCon As SqlConnection
Try
testCon = New SqlConnection
Catch
Finally
If testCon.State = ConnectionState.Open Then
testCon.Close()
End If
testCon = Nothing
End Try
End Sub
这里连接引用在 TRY 子句之前创建,并在 TRY 子句之后初始化。我相信即使抛出异常,连接也总是关闭和取消引用。这是好习惯吗?我在 TRY 子句中看到很多创建引用和取消引用的代码,但这意味着如果抛出异常,则无法正确处理内存。一些开发人员说他们不喜欢在 finally 子句中进行清理。我不完全明白为什么。