.close .dispose d'une form [Résolu]

Signaler
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
-
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
-
Bonjour


J'apprends csharp et la POO sur le tas depuis janvier.
Bien qu'ayant déja fait quelques appli tres fonctionelles, j'ai encore des tas de choses a apprendre


Aujourd'hui je me heurte au concept de .close .dispose d'une form


Quand je quite une form, j'ai pris l'habitude de faire un .close
Je tombe maintenant sur un exemple faisant un .dispose


Quelle est la différence ?
Dans quel cas l'un ou l'autre est le plus approprié ?




Et d'une maniere plus générale, dans quel cas faut il faire un dispose d'un objet instancié


Exemple : je declare une datatable dans une fonction : doiss-je faire un dispose en quittant la fonction ?
En vieil habitué du C je fais toujours des free de ce que j'alloue mais j'avais cru comprendre que Csharp avait un GC pour faire ca

2 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut, le problème avec le GC c'est qu'on ne sait pas quand il va ramasser la mémoire.. mettre à null un objet ne signifie pas qu'il est détruit immédiatement, du coup les destructeurs en C# ne sont pas déterministe, si un objet doit libérer immédiatement de la mémoire ou un handle par exemple, il implemente IDispose.

La méthode Close de la classe Form appelle elle même la méthode Dispose.. Par contre si la fenêtre est ouverte avec ShowDialog dans ce cas Close va seulement masquer la forme, il faudra implcitement appeller Dispose.
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
5
Tres clair !
J'ai compris
Merci Lutinore