Comment tester l'existence et supprimer une structure ? [Résolu] - C#/.NET managed - Programmation
Marsh Posté le 12-05-2007 à 11:47:38
ReplyMarsh Posté le 12-05-2007 à 13:14:52
ReplyMarsh Posté le 12-05-2007 à 13:18:59
tu te renseignes sur le singleton (en gros, le constructeur est privé, tu as une methode publique statique getInstance qui instancie ta classe si ce n'est déjà fait) , tu transformes ta classe en singleton, et tu peux rajouter une méthode de libération, et une méthode de test pour savoir si elle est instanciée. Avec ça tu aura au entre 0 et 1 instance de ton objet.
Marsh Posté le 13-05-2007 à 20:40:04
Pas valable dans son cas puisqu'il a une structure...
A moins d'intégrer sa structure dans une classe (c'est à en revenir à ce qu'il avait avant), il n'a pas vraiment de solution. Sa réponse est toujours: passer par une classe...
Marsh Posté le 13-05-2007 à 21:14:25
ReplyMarsh Posté le 18-05-2007 à 14:53:30
L'intérêt d'une structure n'est pas simplement d'être une classe sans méthodes, le comportement en mémoire change aussi énormément (type valeur = copie en mémoire lors d'une assignation, allocation sur la pile et non le tas). Quelques infos ici : http://msdn2.microsoft.com/en-us/l [...] S.71).aspx
Bref, le passage en struct est vraiment en choix bien spécifique.
D'ailleurs, dans le cas d'une structure, ta question équivaut à "comment tester l'existent et supprimer un int". Une structure n'est pas sensée avec une taille conséquente, elle doit plutôt être petite, et avoir une durée de vie très courte (par contre ses performances sont bien supérieures aux classes en terme de manipulation mémoire : pas de pointeur).
(Je sais, je ne réponds pas à ta question, mais c'était juste un conseil)
Marsh Posté le 19-05-2007 à 09:59:54
Bjr à tous,
Désolé de ne pas être intervenu depuis ma demande. Je me suis renseigné sur le Singleton mais finallement j'ai revu et corrigé ma classe d'origine. La structure ne convient pas à l'utilisation que je voulais en faire.
En tous cas merci à tous pour votre participation et vos réponses.
Lionel.
Marsh Posté le 12-05-2007 à 11:23:00
Salut tlm !
Je viens de revoir une bonne partie de mon code et j'ai finallement transformé une classe pas si utile que ça, en structure sans méthode.
Mon problème est que je dois savoir si la structure a été créée (avec un "new" ) et je dois aussi pouvoir la détruire.
Lorsque j'utilisais la classe, pour savoir si mon objet avait été instancié, je faisais : if(monObj == null) monObj = new Obj();
Et pour le supprimer : monObj = null;
Ca fonctionnait très bien, par contre pour la structure ça ne marche pas de la même façon apparemment
Z'auriez pas une p'tite idée ? Parce que là, j'ai lu pas mal de doc, tous expliquent comment créer une structure, mais rien pour tester son existence ou la supprimer !
Merci d'avance !
Lionel.
Message édité par pot2yaourt le 19-05-2007 à 10:00:10