J'implémente IDisposable pour une classe et je dispose d'une liste interne d'objets jetables. Dois-je disposer ces objets en les bouclant.Comment disposer d'une liste d'objets jetables?
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
Le mot clé "Surcharge" est incorrect, supprimez-le. L'IDE VB.NET génère un code standard inapproprié pour 99,9% de toutes les implémentations IDisposable. Déplacez simplement le code de disposition à Sub Dispose() et débarrassez-vous de la méthode protégée et de SuppressFinalize. –
@Hans, Pouvez-vous indiquer la raison de votre suggestion? – Joker
Le code standard est approprié uniquement lorsque vous implémentez un finaliseur. C'est extrêmement rare. –