Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problemi sa listom i istoimenim objektima

[es] :: .NET :: problemi sa listom i istoimenim objektima

[ Pregleda: 2489 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ajz
Jovanovic Aleksandar
Pancevo

Član broj: 55803
Poruke: 55
*.yubc.net.



Profil

icon problemi sa listom i istoimenim objektima17.03.2006. u 20:04 - pre 219 meseci
Nemogu da razumem. Zasto se ovo desava:

Imam deklarisan objekat neke moje klase. i sad kada ga dodam u listu jednom pa jos jednom ovaj novi, sa drugim vrednostima, se prepise preko starog. u ovo sam siguran jer sam proverio sa listbox-om i foreach petljom. Da li ima veze zato sto je objekat istog imena?
Evo kako sam ga deklarisao

Code:

        Linija zacrt = new Linija();
        List<Linija> lista = new List<Linija>();
        .
        .Dodavanje vrednosti zacrt-u
        .

        lista.Add(zacrt);


Da li neko vidi gresku ili ima neki savet?
svaki električni uređaj radi na beli dim koji se nalazi u njemu; kada beli dim izađe, uređaj više ne radi. 8-)
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: problemi sa listom i istoimenim objektima18.03.2006. u 03:09 - pre 219 meseci
Pa ovaj snippet sto si dao ne govori mnogo. Odavde ispada da imas samo jedno dodavanje zacrt objekta. Kako si opisao meni se cini da si ti radio sledecu stvar
Code:

Linija zacrt = new Linija();
List<Linija> lista = new List<Linija>();

//ovo samo lupam
zacrt.x = 10;

lista.Add(zacrt);

zacrt.x = 20;

lista.Add(zacrt);

A to ti nazalost nece poci za rukom jer je objekat isti tj. referenca mu je ista. Zanimljvo je da lista cuva dve iste reference, mene samo cudi sto nema neki exception za ovako nesto ili je mozda upitanju bug ili feature :)
Resenje je da instanciras/kopiras/kloniras novi objekat linija i dodas ga u listu ukoliko je ovo gore upitanju a ako ne, onda lepo copy/paste ceo kod pa da vidimo.
 
Odgovor na temu

ajz
Jovanovic Aleksandar
Pancevo

Član broj: 55803
Poruke: 55
*.yubc.net.



Profil

icon Re: problemi sa listom i istoimenim objektima19.03.2006. u 16:05 - pre 219 meseci
Sve ovo se dogadja u mouse_down pa kad god kliknem dodeli vrednosti objektu.
P.S.
Sta lista cuva reference ili vrednosti??
svaki električni uređaj radi na beli dim koji se nalazi u njemu; kada beli dim izađe, uređaj više ne radi. 8-)
 
Odgovor na temu

ntadic
bg

Član broj: 38173
Poruke: 75
194.106.174.*

ICQ: 317199697


Profil

icon Re: problemi sa listom i istoimenim objektima20.03.2006. u 09:01 - pre 219 meseci
Uvijek se chuvaju reference.

Vrijednosti dolaze u obzir samo kod vrijednosnih(prostih) tipova: string, bool, int....
I tako...
 
Odgovor na temu

ajz
Jovanovic Aleksandar
Pancevo

Član broj: 55803
Poruke: 55
*.yubc.net.



Profil

icon Re: problemi sa listom i istoimenim objektima20.03.2006. u 18:01 - pre 219 meseci
da li neko moze da pomogne oko ovog problema.
@negyxo kako da uradim copiranje/kloniranje/instanciranje u jednoj metodi a da objekat bude dostupan drugoj???
svaki električni uređaj radi na beli dim koji se nalazi u njemu; kada beli dim izađe, uređaj više ne radi. 8-)
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: problemi sa listom i istoimenim objektima21.03.2006. u 02:10 - pre 219 meseci
Citat:
ajz: da li neko moze da pomogne oko ovog problema.


Ali kog problema?
Imas neko haoticno pitanje pa je malo tesko razumeti konkretno tvoj problem.


Code:

//Instaciranje:
Linija zacrt1 = new Linija();

//Kopiranje
Linija zacrt1 = zacrt.Copy(); //ovde moras imati pre toga vec instaciran objekat zacrt i koji ce, naravno, imati metodu Copy

//Kloniranje
Linija zacrt1 = Linija.Clone(); //znaci isto kao i Copy, to je sve stvar nekog standarda, mogao bi nazvati i recimo Duplikat :)


Poenta je da dobijes nekako novi objekat. Pa da ga onda dodas u listu.

Evo, da ne bi pisao kasnije...
Code:


List<Linija> lista = new List<Linija>();

Linija zacrt = new Linija();
zacrt.x = 10;

lista.Add(zacrt);

//Linija zacrt2 = new Linija();
//Linija zacrt2 = zacrt.Copy();
zacrt = new Linija();
zacrt.x = 20;

lista.Add(zacrt);


Citat:
ajz: kako da uradim copiranje/kloniranje/instanciranje u jednoj metodi a da objekat bude dostupan drugoj???


E da ja ne bi ovde pisao nekakve tutorijale lepo otvori MSDN i napisi scope pa na citanje.

 
Odgovor na temu

ajz
Jovanovic Aleksandar
Pancevo

Član broj: 55803
Poruke: 55
194.106.171.*



Profil

icon Re: problemi sa listom i istoimenim objektima22.03.2006. u 16:19 - pre 219 meseci
Evo detaljno opisanog pitanja.
Ja pravim public objekat zacrt tipa Linija.
Klasa Linija ima dva svojstva P1 i P2.
Vrednost P1 unosi se u metodi mouse_down(...){ zacrt.P1=e.Y; }
Vrednost P2 unosi se u metodi mouse_up(...){ zacrt.P2 = e.X; }
i sad objekat zacrt stavim u Listu.
i kad god se pozove mouse down nova vrednost za P1
i kad god se pozove mouse up nova vrednost za P2
ali u listi postoji tacan broj parova vrednosti ali su te vrednosti iste. :(
eto to je moj problem.
Ako stavim da se objekat zacrt pravi u mouse_down nece biti dostupan mouse_up metodi tako da time nista ne resavam, ani ono scope mi nista ne govori.
svaki električni uređaj radi na beli dim koji se nalazi u njemu; kada beli dim izađe, uređaj više ne radi. 8-)
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: problemi sa listom i istoimenim objektima24.03.2006. u 01:52 - pre 219 meseci
Gledaj ovako,
Sad si vec po drugi put potvrdio da imas problem sa "vidljivoscu" objekta. Na MSDN kad ukucas scope u search, medju prvim rezultatima ti izbaci Variable and Method Scope in Microsoft .NET, doduse za VB je, ali princip je isti. Potrazi malo na netu ako ti je tako lakse. Kad to budes razumeo lako ces resiti to sto te muci. Ajd' sa srecom.
 
Odgovor na temu

[es] :: .NET :: problemi sa listom i istoimenim objektima

[ Pregleda: 2489 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.