[Résolu] Comment tester l'existence et supprimer une structure ?

Comment tester l'existence et supprimer une structure ? [Résolu] - C#/.NET managed - Programmation

Marsh Posté le 12-05-2007 à 11:23:00    

Salut tlm !  :hello:  
 
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 !  :cry:  
 
Merci d'avance !
Lionel.


Message édité par pot2yaourt le 19-05-2007 à 10:00:10
Reply

Marsh Posté le 12-05-2007 à 11:23:00   

Reply

Marsh Posté le 12-05-2007 à 11:47:38    

en mettant tout ca dans un singleton ?


---------------
Töp of the plöp
Reply

Marsh Posté le 12-05-2007 à 13:14:52    

_darkalt3_ a écrit :

en mettant tout ca dans un singleton ?


 
Euh... mais encore ?

Reply

Marsh 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.


---------------
Töp of the plöp
Reply

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...

Reply

Marsh Posté le 13-05-2007 à 21:14:25    

j'ai pas dit qu'il fallait rien changer ...


---------------
Töp of the plöp
Reply

Marsh 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)


Message édité par styx31 le 18-05-2007 à 14:55:35
Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed