|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Collection.clear() [ Mono / Général ] (nico_fip1)
Informations & options pour cette discussion
lundi 22 mai 2006 à 11:50:33 |
Collection.clear()

nico_fip1
|
Bonjour, J'aurait voulu savoir à quel moment étaient suprimés les element d'une collection lors de l'appel de la fonction collection.clear(); : collection MaColl=new collection();
MaClasse MonObjet=new MaClasse(param1,param2,....);
MaColl.Add(MonObjet);
MaClasse AutreObjet=MaColl[0] ;
MaColl.Clear();
Après exécution de ce code, il est bien sûr plus possible d'accéder à l'objet MaColl[0] Par contre pourquoi l'objet AutreObjet existe encore ? A quel moment sera-t-il supprimé ?
Merci pour votre réponse
NicoStrasbourg - France
|
|
|
lundi 22 mai 2006 à 12:56:58 |
Re : Collection.clear()

SharpMao
|
Réponse acceptée !
Hello,
Deux petites choses : Tu as dis "il est bien sûr plus possible d'accéder à l'objet MaColl[0]", tu voulais sans dout dire impossible.
Ensuite une réponse à ta question. Avant de faire le Clear, tu as deux références sur l'objet MonObjet. Le fait d'appeler la méthode Clear ne va pas détruire l'objet, mais enlever le lien entre la collection et l'objet. Comme l'objet est toujours utilisé par AutreObjet, il n'est pas ramassé par le GC (Garbage collector, ou ramasse miettes en français)
J'espère avoir été clair,
Amicalement, SharpMao
|
|
|
lundi 22 mai 2006 à 14:29:02 |
Re : Collection.clear()

nico_fip1
|
Salut Mao..., et les autres aussi
Effectivement, mea culpa ... c'est bien IMPOSSIBLE...J'ai pas relu (pas biennn)
Par contre, ce que je ne comprends pas, c'est que pour moi : - MonObjet est est une référance d'un objet 1, que je crée par new MaClasse() - MaColl.Add(MonObjet); va cloner l'objet, faire un objet 2, qui aura comme référence MaColl[0] - MaClasse AutreObjet=MaColl[0] ; va crée une 2ème référance sur l'objet 2 - MaColl.Clear(); va supprimer l'objet 2 (et non pas que la référance)
Dans quelle étape je me trompe ?
Nico Strasbourg France
|
|
|
lundi 22 mai 2006 à 15:13:55 |
Re : Collection.clear()

SharpMao
|
Réponse acceptée !
Deux erreurs :
Add ne clône pas l'objet, mais dit simplement, "la Xème case de la collection pointe sur l'objet 1". Clear, comme je l'ai déjà dis, ne fait qu'enlever cette référence, et ne détruit pas l'objet, tant que celui-ci est encore utilisé par une autre variable.
Amicalement, SharpMao
|
|
|
lundi 22 mai 2006 à 16:55:48 |
Re : Collection.clear()

nico_fip1
|
Ok, j'ai tout à fait compris. En fait, j'ai été perturbé, car la classe que l'utilise, qui hérite de la classe BaseCollection, est surchargée par une fontion Add(). Cette foncion Add, fait un
base.Add(new ....); de ce fait, avec le mot clé new, on effectue un clonage de l'objet.
Meri en tout cas pour ces 2 réponses qui sont très clairs
Nico Strasbourg France
|
|
|
Cette discussion est classé dans : clear, collection, moment, macoll, maclasse
Répondre à ce message
Sujets en rapport avec ce message
La référence d'objet n'est pas définie à une instance d'un objet. [ par kinderman81 ]
Salut,Je souhaite ajouter des objets "Concessionnaire" dans un vecteur ArrayList (qui est la liste des concessionnaires): Celui-ci est l'objet Collect
Lancer un programme a un moment précis [ par Teddysan ]
Tout le monde connait le moyen de lancer un programme a partir du code:Process p = new Process();p.StartInfo = new ProcessStartInfo();p.StartInfo.File
Collection converter - Help [ par bucherb ]
Hello la compagnie.Voila, j'ai un control self-made qui contient une collection, avec un CollectionConverter afin que le designer affiche au développe
appeler les methodes d'une classe et remplir une collection en C# [ par chris81 ]
j'ai creer une classe de carton et j'aimerai savoir comment il faut faire pour appeler mes methodes qui sont a l'interieur. et j'aimerai aussi savoir
Collection [ par jeanajaccio ]
Salut à tous,Je vais essayer d'expliquer ma demande le + simplement possible : je code un composant dans lequel je souhaite implémenter une collection
Instancier une classe... [ par Yandroide ]
J'ai ajouté comme référence à mon projet, une dll qui contient des classes.Quand j'essaye d'instancier une de ces classes pour utiliser les méthodes c
Méthode Dispose [ par JuS ]
J'ai un problème existentiel ...J'ai deux classes, par exemple MonObjet et MaClasse.class MaClasse { // Contient des instances de MonObjet Arr
Collection de PictureBox [ par tfrancais ]
Ca doit être une question de débutant mais comment fait-on pour créer une collection de PictureBox où chaque élèment possède un index.Est-ce qu'il exi
Dur dur les debut en C# [ par chris81 ]
bonjour, je viens de me mettre au C# et ben ca change la vie, pour le moment pas dans le bon sensj'ai l'habitude de vb.net alors quand je tape textbox
Méthode Dispose... [ par Diamondduff ]
Je débute en c#, lorsque l'on utilise une classe faut-il la refermer?j'ai vu la méthode dispose() dans la classe...Test Maclasse = New test();... acti
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|