+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

Matrice di oggetti

  1. #1
    Post
    198
    Like Inviati  
    0
    Like Ricevuti  
    1
    Ciao a Tutti,
    ho un problema di inizializzazione di una matrice di oggetti.


    Dichiaro la matrice, la dimensiono.
    i valori di tutte le caselle della matrice sono null.

    quando tento di valorizzarli ottengo un errore (ultima riga del codice).
    Riferimento ad oggetto non impostato.



            Point2D[,] Pt = new Point2D[8, Globale.PannelliMuratura[Key].AperturePannelli.Count];
               
                for (int i = 0; i < Globale.PannelliMuratura[Key].AperturePannelli.Count; i++)
                {
                    Pt[0, i].X = Globale.PannelliMuratura[Key].AperturePannelli[i].DistanzaOrizz;
    
    Mi sfugge qualcosa di banale.
    Come se dovessi per ogni elemento della matrice inizializzare l'oggetto.
    Ho provato così inizializzando dentro il ciclo per test e funziona.

     for (int i = 0; i < Globale.PannelliMuratura[Key].AperturePannelli.Count; i++)
                {
                    Point2D test = new Point2D();
                    Pt[0, i] = test;
                    Pt[0, i].X = Globale.PannelliMuratura[Key].AperturePannelli[i].DistanzaOrizz;
    

    Non mi piace molto formalmente. non c'è un modo di inizializzare tutti gli elementi della matrice, oltre alla matrice?
    Cosa ne pensate?

    Saluti
    Sebastiano Floridia

  2. #2
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Post
    1,399
    Like Inviati  
    0
    Like Ricevuti  
    21
    Quote Originariamente inviato da SebastianoFloridia Visualizza il messaggio
    Mi sfugge qualcosa di banale.
    Come se dovessi per ogni elemento della matrice inizializzare l'oggetto.
    Direi che è proprio così: quando inizializzi la matrice, viene allocata la memoria per contenere il numero di riferimenti a oggetti che appartengono al tipo della matrice, ma non vengono creati gli oggetti stessi.

    Ovviamente ciò ha senso: si sta creando la matrice di "puntatori" a potenziali oggetti, ma non è automatico che si voglia creare anche gli oggetti. Metti che voglia salvare all'interno uno o più riferimenti a oggetti già esistenti? E se per creare l'oggetto è necessario indicare dei parametri perché sono richiesti dal costruttore, come potrebbe il runtime sapere che valori specificare?

    Dichiarare e poi dimensionare la matrice alloca lo spazio per i riferimenti, ma sei tu a decidere cosa ci finisce dentro, quindi se vuoi riempirla di riferimenti a oggetti che sono nuovi, devi provvedere tu a crearli (esattamente come hai fatto dopo) e salvare il riferimento all'oggetto nella posizione desiderata della matrice.

    Ciao!
    ℹ️ Leggi di più su _alka_ ...

  3. #3
    Post
    198
    Like Inviati  
    0
    Like Ricevuti  
    1
    Grazie!!!
    Chiarissimo.

    Saluti
    Sebastiano Floridia

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. [Matrice] Risultato Matrice da omettere SE...
    Da GaSe2004 nel forum Microsoft Excel
    Risposte: 1
    Ultimo Post: 09-10-2014, 19:08
  2. [ Access ] Oggetti Ole
    Da perlasca nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 14-04-2008, 19:45
  3. Trasformare una matrice di Boolean in matrice di Byte
    Da luciano.net nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 15-06-2006, 17:20
  4. Oggetti
    Da AdEGoD nel forum Adobe Flash, ActionScript
    Risposte: 8
    Ultimo Post: 15-04-2006, 10:44
  5. Confronto tra due oggetti
    Da bornslippy nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 03-05-2005, 17:13