hi
ik ben met een projectje bezig in C,
ik denk dat je wel direct zal zien wat het probleem is, maar aan de hand
van online tutorials raak ik er niet uit hoe het dan wel moet gebeuren
code:
for (int i = 0; i < werkfiches.Count(); i++)
{
Bestand bestand = new Bestand(werkfiches[i]);
if (cbxNamen.Items.Contains(bestand.getPloegleider()))
{ }
else
{
cbxNamen.Items.Add(bestand.getPloegleider());
}
tuinenGoemaere.addBestand((Bestand)bestand.);
}
de laaste lijn voeg het bestand gewoon toe in een arraylist, en hier zit
het probleem
Het probleem is, dat uiteindelijk in mijn arraylist, alle items
verwijzingen naar het laatste bestand dat ik heb toegevoegd.
new Bestand reserveert geen nieuwe geheugenruimte, maar overschrijft de
ruimte voorzien voor het eerste object, waardoor ze uiteindelijk
allemaal dezelfde waarde bevatten
ik veronderstel dat het probleem ligt aan shallow copy vs deep copy, en
naar ik al gevonden heb op google, heb ik een .clone() nodig.
Maar wat moet er in die functie clone() gebeuren? ik heb ook al zoveel
verschillende mogelijke implementaties gezien (met een copy, met een
serializer, ...) dat ik niet kan achterhalen welke manier ik nodig heb
hoop dat je mij een beetje op weg kan helpen, en bedankt op voorhand
thx
EDIT1: Hij voegt alles correct toe aan de array, maar iedere keer dat ik een volgende file neem overschrijft hij de geheugenruimte van de eerst array. Dit terwijl de verwijzing in de arraylist goed blijft.
EDIT2: public void addBestand(Bestand newBestand)
{
bestanden.Add(newBestand);
}
EDIT3: dit staat bovenaan: static ArrayList bestanden = new ArrayList();
ik ben met een projectje bezig in C,
ik denk dat je wel direct zal zien wat het probleem is, maar aan de hand
van online tutorials raak ik er niet uit hoe het dan wel moet gebeuren
code:
for (int i = 0; i < werkfiches.Count(); i++)
{
Bestand bestand = new Bestand(werkfiches[i]);
if (cbxNamen.Items.Contains(bestand.getPloegleider()))
{ }
else
{
cbxNamen.Items.Add(bestand.getPloegleider());
}
tuinenGoemaere.addBestand((Bestand)bestand.);
}
de laaste lijn voeg het bestand gewoon toe in een arraylist, en hier zit
het probleem
Het probleem is, dat uiteindelijk in mijn arraylist, alle items
verwijzingen naar het laatste bestand dat ik heb toegevoegd.
new Bestand reserveert geen nieuwe geheugenruimte, maar overschrijft de
ruimte voorzien voor het eerste object, waardoor ze uiteindelijk
allemaal dezelfde waarde bevatten
ik veronderstel dat het probleem ligt aan shallow copy vs deep copy, en
naar ik al gevonden heb op google, heb ik een .clone() nodig.
Maar wat moet er in die functie clone() gebeuren? ik heb ook al zoveel
verschillende mogelijke implementaties gezien (met een copy, met een
serializer, ...) dat ik niet kan achterhalen welke manier ik nodig heb
hoop dat je mij een beetje op weg kan helpen, en bedankt op voorhand
thx
EDIT1: Hij voegt alles correct toe aan de array, maar iedere keer dat ik een volgende file neem overschrijft hij de geheugenruimte van de eerst array. Dit terwijl de verwijzing in de arraylist goed blijft.
EDIT2: public void addBestand(Bestand newBestand)
{
bestanden.Add(newBestand);
}
EDIT3: dit staat bovenaan: static ArrayList bestanden = new ArrayList();
[ Voor 12% gewijzigd door Verwijderd op 22-04-2009 12:02 ]