Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Passaggio a referenza
Forum - C# / VB.NET - [VB.NET] Passaggio a referenza

Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 20:20
Giovedì, 18/08/2011
Questo topic è stato chiuso dal moderatore

Salve a tutti,
A una funzione passo una lista di immagini. Siccome List(Of T) è un tipo reference, e non voglio che le immagini modificate la funzione la chiamo in questo modo:
Codice sorgente - presumibilmente Plain Text

  1. DoSomething(New List(Of Bitmap)(ListaImmagini))


Il che dovrebbe fare in modo che la funzione DoSomething riceva il riferimento al nuovo oggetto contenente la copia degli elementi di ListaImmagini, e NON il riferimento a ListaImmagini.
In un'altra occasione lo stesso metodo aveva portato il risultato sperato e gli elementi della lista non venivano modificati.
Questa volta però non succede così :grr:
Cosa sbaglio?


Blog:
<coming soon>
Appalo:
http://www.appalo.it/
PM
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 20:35
Giovedì, 18/08/2011
Attenzione, la lista viene copiata, ma gli elementi della lista sono di tipo Bitmap(tipo reference), quindi li devi copiare a mano uno per uno. Se non lo fai ciò che passi è una lista nuova, ma con elementi che si riferiscono alle stesse Bitmap della prima.


"E' facile distruggere, la vera sfida è creare!"(cit. me)

"Ricordati chi sei, non permettere a nessuno di cambiarti, non perdere mai te stesso. Farai grandi cose nella vita."(cit. me)

double penetration; //ouch
PM
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 8:17
Venerdì, 19/08/2011
Capito :) grazie per la risposta


Blog:
<coming soon>
Appalo:
http://www.appalo.it/
PM