Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Array in C#

  1. #1

    Array in C#

    Scusate la domanda che forse è banalissima, ma non riesco a trovare una soluzione.

    Se ho una classe "Pippo" e voglio creare un array di oggetti "Pippo" devo fare così:

    Pippo[] nuovo = new Pippo[10];

    ....e fino a qui tutto funziona ed ottengo un array con 10 celle....e ciò mi viene confermato scrivendo:

    int totale_celle = nuovo.Length;

    Ma se io voglio mettere nella cella 2 un oggetto di tipo "Pippo" non dovrei fare così: ????

    nuovo[1] = new Pippo();

    Così però ricevo errore : IndexOutOfBound Exception

    Qualcuno mi sa aiutare?

    ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    uso il Basic, perciò scusa gli errori

    ho una classe tipo:
    codice:
    public class impiegato
    {
    	public string nome;
    	public impiegato(string nome)
    	{
    		this.nome = nome;
    	}
    }

    e la richiamo usando un vettore
    codice:
    impiegato[] j = { new impiegato("Pietro"), new impiegato("Paolo")};
    for(int i = 0; i < j.Length; i++)
    	lib.PrintLn(j[i].nome, "");
    Pietro

  3. #3
    Pero' cosi' facendo tu inserisci gli oggetti all'interno dell'array tutti in una volta.

    Io invece ho un ciclo, ed ad ogni iterazione viene creato un oggetto che dovrei inserire nell'array

    Faccio un esempio di codice

    int totale = 10;
    Pippo[] nuovo = new Pippo[totale];

    for(int i = 0; i < totale; i++)
    { nuovo[i] = crea_ogg();
    }


    public Pippo crea_ogg()
    { ....
    return oggetto di tipo Pippo;
    }

    Secondo voi perche' cosi' non mi funziona, ma mi da sempre l'errore IndexoutOfBound Exception?

    grazie ancora e ciao

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    queste 2 istruzioni sono identiche
    codice:
    impiegato[] j = { new impiegato("Pietro"), new impiegato("Paolo")};
    
    impiegato[2] j;
    j[0] = new impiegato("Pietro");
    j[1] = new impiegato("Paolo");
    Pietro

  5. #5
    Grazie mille, forse ho capito dove e' il problema.

    Mi sa che devo scrivere cosi':

    int totale = 10;
    Pippo[totale] nuovo; //strano ma forse funziona!!!

    for(int i = 0; i < totale; i++)
    { nuovo[i] = crea_ogg();
    }


    public Pippo crea_ogg()
    { ....
    return oggetto di tipo Pippo;
    }

    Appena possibile ci provo

    ciao

  6. #6

    Scusate.....errore MADORNALE che avevo fatto io sul ciclo che popolava l'array.....ora funziona!!!!!

    Comunque per precisione il codice esatto per creare un array in c# è quello che ho scritto nel primo messaggio. (lo so che tutti sanno creare un array.....ma voglio togliere qualsiasi dubbio che ho messo ai lettori).


    Ho provato il codice che ho scritto prima, ma come sospettavo mi da errore sulla righa:

    Pippo[totale] nuovo;

    Mi dice che si aspettava ";" .....e non gli do' tutti i torti

    grazie comunque per l'aiuto e scusate ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.