sylchar
Messages postés4Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention12 janvier 2007
-
12 janv. 2007 à 12:30
sylchar
Messages postés4Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention12 janvier 2007
-
12 janv. 2007 à 13:45
Bonjour,
J'ai un souci, je travail avec une collection et à chaque fois que j'ajoute un item dans ma collection, tous les items precedents prennent la meme valeur que mon dernier item ajouté...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 12 janv. 2007 à 12:40
Ce que je vais dire s'applique pour vb6, mais il y a de grande chance que ca soit valable pour vb.net :
Il doit s'agir tout simplement du fait que tu modifie directement l'objet Enreg, et que tu ne crée pas une nouvelle instance : une collection n'est qu'une liste de pointeurs vers les objets, et il ne s'agit pas d'une copie des objets (heureusement d'ailleurs !)
Donc au lieu de faire :
set Enreg = new Class1
Enreg.nom = "toto"
listeCol.add enreg
Enreg.nom = "titi"
listeCol.add enreg
Il faut faire :
set Enreg = new Class1
Enreg.nom = "toto"
listeCol.add enreg
set Enreg = new Class1
Enreg.nom = "titi"
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 12 janv. 2007 à 13:26
C'est exactement ça en VB2005 aussi, bref c'est le principe des collections.
Tu n'ajoute pas un objet à une collection, tu ne fais qu'ajouter une référence vers un objet existant.
Tu peux comparer une collection à la table des matières d'un livre, ce n'est qu'une liste de réfrérences vers les objets qui sont ici les articles, chapitres, pages du livre
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #