Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Problema con arraylist
Forum - C# / VB.NET - Problema con arraylist

Avatar
Tommaso.no (Normal User)
Newbie


Messaggi: 2
Iscritto: 31/03/2008

Segnala al moderatore
Postato alle 0:26
Lunedì, 31/03/2008
Questo topic è stato chiuso dal moderatore

Ho fatto una sub che, premendo un bottone, mi permette di aprire il dialog per scegliere un file di testo e leggere il file una riga alla volta.
Da questa riga estraggo un'array di Byte e la inserisco in un'arraylist (Estrazioni).

Alla fine mi ritrovo con un'arraylist con tante array di byte quante sono le righe ma tutte le array sono uguali all'ultima che ho inserito!

Il codice è questo:

Codice sorgente - presumibilmente VB.NET

  1. Sub BtnCaricaClick(ByVal sender As Object, ByVal e As EventArgs)
  2.     Dim triga As String, riga(9) As String, Sest(5) As Byte
  3.     If ApriFile.ShowDialog = Windows.Forms.DialogResult.OK Then
  4.         Estrazioni.Clear()
  5.         Dim R As New IO.StreamReader(ApriFile.FileName)
  6.         While Not R.EndOfStream
  7.             triga = R.ReadLine
  8.             riga = Strings.Split(triga)
  9.             For i As Byte = 0 To 5
  10.                 Sest(i) = CByte(Riga(i + 2))
  11.             Next
  12.             Estrazioni.Add(Sest)
  13.         End While
  14.         R.Close()
  15.     End If
  16. End Sub


Ultima modifica effettuata da Tommaso.no il 31/03/2008 alle 0:28
PM
Avatar
Tommaso.no (Normal User)
Newbie


Messaggi: 2
Iscritto: 31/03/2008

Segnala al moderatore
Postato alle 15:28
Lunedì, 31/03/2008
Problema risolto :)
Evidentemente gli oggetti da inserire nell'arraylist vengono passati "ByRef".

Ciao :D

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:47
Lunedì, 31/03/2008
Succede perchè ArrayList non è tipizzato e legge tutti gli oggetti passati come Object, che ovviamente è sempre Reference.

PM