Bonjour,

Je sais que le sujet a été abordé plusieurs fois sur ce forum, mais j'ai toujours du mal avec ca ...

Comment peut-on savoir si une ressource est managée ou pas ?

Par exemple, est ce que OdbcConnection est une ressource managée ?

Je travaille sur le destructeur de ma classe et j'ai donc implémenté l'interface IDisposable. Mais voilà ce qu'ils mettent dans l'aide :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Class Base
    Implements IDisposable
    ' Implement IDisposable.
    Public Overloads Sub Dispose() Implements IDisposable.Dispose
        Dispose(True)
        GC.SuppressFinalize(Me)
   End Sub 
 
    Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            ' Free other state (managed objects).
        End If
        ' Free your own state (unmanaged objects).
        ' Set large fields to null.
   End Sub 
 
    Protected Overrides Sub Finalize()
        ' Simply call Dispose(False).
        Dispose(False)
   End Sub 
End Class
Supposons que ma classe possède deux attributs, un de type ODBCConnection et l'autre de type DataSet.

Où dois-je mettre l'appel de la méthode Dispose() de chacun des éléments ? Dans unmanaged ou managed object ?


Merci pour votre aide car, pour moi, c'est vraiment pas clair.