begin process at 2010 02 10 10:49:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Mono

 > 

Général

 > 

Collection.clear()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Collection.clear()

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

Nico
Strasbourg - France
lundi 22 mai 2006 à 12:56:58 | Re : Collection.clear()

SharpMao

Membre Club
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

Membre Club
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ée 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


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales