Estoy implementando IDisposable para una clase y mientras deseche hay una lista interna de objetos desechables. ¿Debo deshacerme de esos objetos haciendo un bucle a través de ellos?¿Cómo disponer una lista de objetos desechables?
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
La palabra clave "Sobrecargas" es incorrecta, elimínela. El IDE de VB.NET genera un código repetitivo inapropiado para el 99.9% de todas las implementaciones IDisposable. Simplemente mueva el código de eliminación a Sub Dispose() y elimine el método protegido y SuppressFinalize. –
@ Hans, ¿Puedes decirnos el motivo de tu sugerencia? – Joker
El código estándar es apropiado solo cuando implementa un finalizador. Eso es extremadamente raro. –