Array dinamici VB.NET

di il
14 risposte

Array dinamici VB.NET

Salve a tutti una volta dichiarato un array dinamico nel seguente modo

public v() as integer

come si fa per deallocarlo?

14 Risposte

  • Re: Array dinamici VB.NET

    Ciao dna_programmer,
    non devi fare nulla, la deallocazione degli oggetti in .NetFramework è automatica, ci pensa il garbage collector.
    Quando nessuna variabile punta più all' oggetto il garbage collector può deallocarlo.

    Una variabile smette di puntare all' oggetto quando esce dallo scope, quando le viene assegnato un altro oggetto, quando viene messa a Nothing. Quando non vi è più nessun riferimento all' oggetto non è detto che venga deallocato immediatamente è l' algoritmo del garbage collector che decide il momento migliore.

    Se proprio proprio vuoi puoi forzare il garbage collector puoi farlo con System.GC.Collect(), ma non è una buona idea, vai a rompre le scatole ad un processo delicato e rischi di compromettere le prestazioni del sistema.

    P.S. facendo public v() as integer non hai allocato nulla, hai fatto solo una dichiarazione e v vale Nothing, puoi scrivere scrivere ad esempio:
    
    Public v As Integer() = New Integer(10) {}
    
  • Re: Array dinamici VB.NET

    Ok grazie , io però non vorrei allocarli tutti e n(es.10) nello stesso momento, ma vorrei fare un ciclo e alla fine del ciclo crea un "pezzo di array";
    esempio:
    all'inizio del ciclo l'array ha zero caselle, poi alla fine ne crea una poi ricomincia il ciclo e ne mette 2 e cosi via.
    E' possibile questo?
  • Re: Array dinamici VB.NET

    Usa gli array dinamici, aumentano la loro dimensione man mano che aggiungi oggetti, ce ne sono di vari tipi.
  • Re: Array dinamici VB.NET

    Scusami ho un pò di confusione.

    perchè questo non è un array dinamico:

    public v() as integer

    E poi come faccio per farlo aumentare di dimensione ogni volta che aggiungo oggetti?
  • Re: Array dinamici VB.NET

    Sorry ,in effetti con array dinamico si intende quello che dici tu e ridimensioni col Redim Preserve, praticamente non li ho mai usati. Mi riferivo alle classi ArrayList e List(Of), ad esempio:
    
            Dim frutti As ArrayList = New ArrayList()
            frutti.Add("pera")
            frutti.Add("mela")
            frutti.Add("banana")
    
    oppure
    
            Dim i As Integer
            Dim numeri As List(Of Integer) = New List(Of Integer)
            For i = 1 To 1000
                numeri.Add(i)
            Next
    
  • Re: Array dinamici VB.NET

    Quindi in pratica da quello che ho capito quello che ho detto io sono i vettori dinamici, mentre quelli che hai detto tu sono le "famose" liste dinamiche del c , quelle con i puntatori ecc. É cosi?
  • Re: Array dinamici VB.NET

    Ciao dna_programmer,
    assolutamente no. Nel .NetFramework non si usano i puntatori (perlomeno non in maniera esplicita e tranne in C# quando compili in maniera unsafe), sono delle classi che incapsulano il concetto di contenitore, se proprio vuoi fare un paragone (un po tirato) pensa alle classi contenitore della libreria STL del C++. Hai a disposizione Vettori, Code, Liste, Stack, Hash Tables, Dizionari ecc. ecc. ecc.

    In pratica ti sarai reso conto che il .NetFramework è una sterminata libreria di classi dove trovi di tutto. Queste classi array sono una parte di questa libreria.
  • Re: Array dinamici VB.NET

    A ok quindi diciamo che si ispirano alle liste del c però senza puntatori perchè vengono gestiti automaticamente giusto?
  • Re: Array dinamici VB.NET

    Giusto, però non fare il paragone col C, semmai col C++ o Java, cioe linguaggi ad oggetti da cui il .NetFramework prende molto.
  • Re: Array dinamici VB.NET

    Quindi in poche parole sono delle liste ad "alto livello" se cosi' le vogliamo definire
  • Re: Array dinamici VB.NET

    Giusto, se poi invece che lista (che ricorda quelle brutte cose del C con i nodi e i puntatori) li chiami 'contenitori' meglio ancora.
  • Re: Array dinamici VB.NET

    A ok ok. un'atra cosa, se non ti rompo troppo, che differenza c'è tra ArrayList e List(Of) ?
  • Re: Array dinamici VB.NET

    Discorso difficilda spiegare in poche righe, ArrayList è un contenitore di oggetti generico, non verifica il tipo degli oggetti che inserisci, List Of invece è basato sui 'Generics' per cui hai il controllo sul tipo. Mi rendo conto che la spiegazione non è proprio chiara spero che basti come spunto.

    Per qualche esempio su ArrayList puoi guardare qui

    Per qualche esempio d' uso di list of puoi guardare qui
  • Re: Array dinamici VB.NET

    Grazie l'ho letto ,molto interessante.Grazie ancora
Devi accedere o registrarti per scrivere nel forum
14 risposte