我正在为一个类实现IDisposable,同时处置一个可丢弃对象的内部列表。我应该通过循环来处理这些对象。如何处置一次性物品清单?
public Class MyDisposable
Implements IDisposable
private _disposbaleObjects as new List(of OtherDisposables)
Public Overloads Sub Dispose() Implements System.IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
? Should I dispose the the list like this ?
For Each obj In _disposbaleObjects
obj.dispose()
Next
End If
End If
Me.disposedValue = True
End Sub
End Class
“Overloads”关键字错误,请将其删除。 VB.NET IDE为99.9%的所有IDisposable实现生成不合适的样板代码。只需将配置代码移动到Sub Dispose()并摆脱受保护的方法和SuppressFinalize即可。 – 2010-07-18 17:53:58
@Hans,你能说出你的建议的原因吗? – Joker 2010-07-18 18:29:21
只有在实现终结器时,样板代码才适用。这非常罕见。 – 2010-07-18 18:44:41