Kezdőoldal » Számítástechnika » Programozás » Tömb másolata módosítása,...

Tömb másolata módosítása, módosítja az eredeti tömböt is, miért? (c#)

Figyelt kérdés

Üdv!

A következő problémám van:

adott egy (PictureBox[] a = new PictureBox[100]) tömb, aminek az értékeit át másolom egy másik, b tömbbe (PictureBox[] b = new PictureBox[100]).

for (int i = 0; i < a.Length; i++)

{

b[i] = a[i];

}

Érték szerint adom át, de mégis referenciként viselkedik, mert amikor változtatom a "b" tömböt változik az "a" is.

private void Csere(int i, int j)

{

Image seged = b[i].Image;

string seged1 = b[i].Name;

string seged2 = b[i].ImageLocation;

b[i].Image = b[j].Image;

b[i].ImageLocation = b[j].ImageLocation;

b[i].Name = b[j].Name;

b[j].Image = seged;

b[j].Name = seged1;

b[j].ImageLocation = seged2;

}

Hogyan tudnám ténylegesen elkülöníteni a kettőt?



#tömb #Visual C# #tömb kezelés #két tömb értékének másolása #referencia és érték szerinti átadás
2013. aug. 29. 13:26
 1/5 anonim ***** válasza:

Array.Copy(Array Source, Array Destination, Int32 Length)


[link]

2013. aug. 29. 13:31
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Eddig nem ismertem a módszert, de sokkal egyszerűbb, mint ciklust körmölni, köszi a hozzászólást!

A probléma viszont még mindig fent áll sajnos...

2013. aug. 29. 13:50
 3/5 anonim ***** válasza:
100%
Azért, mert a tömbben referenciák vannak (ha úgy tetszik, mutatók). Hiába van másik tömböd, a benne levő referenciák ugyanazokra a példányokra mutatnak, mint az eredeti tömbben. A példányokat is klónoznod kell.
2013. aug. 29. 14:01
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

Object.MemberwiseClone()


[link]

2013. aug. 29. 14:07
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
értem, köszönöm !
2013. aug. 29. 14:13

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!