102 messaggi dal 23 giugno 2004
Ciao a tutti,

Sto realizzando un software in VB.2005 e devo dire che, a parte le nuove grandi funzionalità e la maggiore elasticità nella programmazione ad oggetti, non rieco a trovare sufficiente documentazione su come e quando utilzzare delle collezioni di oggetti.
In particolare... il mio è un problema più di filosofia della programmazione...  nel senso che mi chiedo quando è più giusto utilizzare o meno le collezioni atratte.
Se realizzo una classe contatto (nome, cognome, indirizzo, etc.) è più giusto, in fase di istanziamento, utilizzare la classe in cui le proprietà sono indicizzate con degli array (es. nome(1), cognome(1), etc), oppure utilizzare le collezioni di oggetti? Credo sia più proficuo utilizzare le collezioni... ma non ho capito bene come realizzarle ed utlizzarle. In particolare, per poter aggiungere elementi alla collezione, devo avvalermi del metodo .Add e passargli la classe attraverso un costruttore new (es. collezione.add(new contatto(Pippo)))? ma come fare ad aggiungere n elementi estratti da un db attraverso il metodo elenca della mia classe contatto?

Grazie in ancipo a tutti per i contributi

Ciao e Grazie
PIXEL
2.410 messaggi dal 13 febbraio 2003
Contributi
Allora l'argomento è trattato molte bene nel capitolo 4 del libro http://books.aspitalia.com/ASP.NET-2.0/

Per il tuo caso specifico puoi implementare l'interfaccia ienumerable qui trovi un buon inizio
http://msdn2.microsoft.com/it-it/library/system.collections.ienumerable(vs.80).aspx
102 messaggi dal 23 giugno 2004
Comprato...
avevo intenzione di farlo da tempo e mi sono convinto.... .
Cmq ecco quanto sono riuscito a fare seguendo qualche esempio dal librone del Balena e devo dire he funzica ma non sò se è professionale come soluzione :

Public Class BlisterCollection
    Inherits System.Collections.CollectionBase

    Default Property Item(ByVal index As Integer) As Blister
        Get
            Return CType(InnerList.Item(index), Blister)
        End Get
        Set(ByVal value As Blister)
            InnerList.Item(index) = value
        End Set
    End Property

    Sub Add(ByVal Value As Blister)
        InnerList.Add(Value)
    End Sub

    Sub Estrai(ByVal StrSQLCommand As String)
        Dim conn As New SqlConnection(StrSQLConn)
        Dim cmd As New SqlCommand(StrSQLCommand)
        conn.Open()
        cmd.Connection = conn

        Dim dr As SqlDataReader = cmd.ExecuteReader()
        While (dr.Read())
            Me.Add(New Blister(dr.Item("Blister_Code"), dr.Item("BarCode")))
        End While
        dr.Close()
        conn.Close()

    End Sub
End Class


Naturalemnete per questioni di lunghezza ho omesso la classe Blister che ha il costruttore New che richiamo quando popolo la collezione.

Ciao e Grazie
PIXEL

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.