olibara
Messages postés666Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 mars 2010
-
8 mai 2008 à 09:35
olibara
Messages postés666Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 mars 2010
-
8 mai 2008 à 10:47
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
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 8 mai 2008 à 10:40
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.