begin process at 2012 02 14 07:15:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

au sujet de la méthode dispose()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

au sujet de la méthode dispose()

mercredi 12 juillet 2006 à 13:35:18 | au sujet de la méthode dispose()

tournevice

Salut,

J'aurai voulut avoir un renseignement et des avis. Mon but serait d'implémenter une méthode dispose() pour permettre de désallouer proprement la mémoire occupée par chaque instanciation d'une classe que j'ai écrite, et qui utilise des objets ADO .NET pour se connecter à une base de données sql server 2000 et insérer, supprimer, mettre à jour des données dans la base. Cette classe dispose des champs suivant (suivis de méthodes pas intéressantes pour ce sujet) :

Public AgentID As New SqlClient.SqlParameter("@AgentID", SqlDbType.Int)
Public BrigadeID As New SqlClient.SqlParameter("@BrigadeID", SqlDbType.Int)
Public FonctionID As New SqlClient.SqlParameter("@FonctionID", SqlDbType.Int)
Public Visa As New SqlClient.SqlParameter("@Visa", SqlDbType.Image)

Je voulais savoir, d'une part, si l'implémentation de la méthode dispose(), dans mon cas, est judicieuse, ou s'il vaut mieux laisser faire le garbage collector. Dans le cas ou son implémentation serait une bonne chose, je me heurte à un petit problème. L'objet SqlClient.SqlParameter ne propose pas de méthode dispose. Ainsi, lorsque je veux le caster en IDisposable, lors de l'execution, .NET me dit que j'ai pas le droit de faire ce cast. Comment faire?

Voici mon code:

Private disposed As Boolean = False

Protected Overridable Sub Dispose(ByVal disposing As Boolean)
        If Not disposed Then
            If disposing Then
                If Not AgentID Is Nothing Then
                    CType(AgentID, IDisposable).Dispose()
                End If
                If Not BrigadeID Is Nothing Then
                    CType(BrigadeID, IDisposable).Dispose()
                End If
                If Not FonctionID Is Nothing Then
                    CType(FonctionID, IDisposable).Dispose()
                End If
                If Not Visa Is Nothing Then
                    CType(Visa, IDisposable).Dispose()
                End If
            End If
            disposed = True
        End If
    End Sub

    Public Sub Dispose() Implements IDisposable.Dispose
        Dispose(True)
    End Sub
jeudi 13 juillet 2006 à 10:06:05 | Re : au sujet de la méthode dispose()

eldim

Bonjour,

Le dispose n'est util que sur des composants non managés comme des composant COM par exemple.
Comme les formulaires contiennent des composants non managés on a une méthode dispose dessus.
Si tu crée une class elle est managée par défaut donc tu n'as pas besoins de faire une dispose sauf si elle contient des object COM.

Les objets .NET sont managés donc pas besoins

-- Pourquoi faire simple quand on peut faire compliquer --
jeudi 13 juillet 2006 à 14:55:35 | Re : au sujet de la méthode dispose()

tournevice

Merci de ta réponse!


Cette discussion est classée dans : public, end, méthode, dispose, idisposable


Répondre à ce message

Sujets en rapport avec ce message

Timer [ par tony ] Private Sub form_load()timer.Interval = 1000timer.Enabled = trueEnd SubPrivate Timer_Time()Label1.caption = timeEnd Sub'Malheureusement avec cette mét public, ca devrait marcher? [ par sly63 ] Hello,J'ai un probleme avec VB6, je simplifie... Dans un meme projet, admettons que j'ai deux formes (F1.frm et F2.frm),F1.frm est compose d'un bouton Effacer proprement une collection d'objets [ par Ricou13 ] Salut, J'aimerais connaitre la méthode à suivre pour effacer proprement une collection d'objets de la mémoire sans se contenter de simplement supprime Problème de boucle dans un module Sub_main() [ par elpingouin ] Bonjour à tous !c'est la première fois que je poste ici et je remercie tous les organisateurs de ce site bien bien utile .. Figurez vous que je me sui connexion avec ODBC.NET [ par mastercatz ] Voila, j'arrive pas à me connecter à une source ODBC pour gerer une base de données FileMaker Pro (vb.NET). En fait j'ai pas mal de doutes sur les par Textbox, la suite en plus clair.... [ par darkbol ] oui merciDonc je reprends mon probleme de mise à zéro de mes cases textbox... par un clic sur le bouton RESET.voici la portion de code concernée : O Retour du contenu d'une textbox (trivial?!) suite [ par darkbol ] oui merciDonc je reprends mon probleme de mise à zéro de mes cases textbox... par un clic sur le bouton RESET.voici la portion de code concernée : < [VB.NET] Gestion des exceptions personnalisées [ par chrisisis ] Bonjour, Je souhaiterais créer des exceptions personnalisées. Dans la doc ud framework, j'ai vu qu'il fallait créer une classe qui hérite de Applicati erreur d'execution 91 [ par lea75 ] Bonjour à tous,J'ai une erreur 91 dans ma classe Clslog2Option ExplicitDim vlog As StringDim vpwd As StringPublic Property Get pwd() As Stringpwd = vp code menu fait avec direct draw [ par DarklordBioopo ] bonjour,je viens de realiser mon premier code en direct draw,et j'aimerais que qqun le regarde et me dise coment l'ameliorer.Public bRunning As Boolea


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales