microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
uso c# e ho creato una procedura che mi crea un vettore di tipo struct chiamato scheda...
se opero sul vettore nel main, cercando di organizzare un ciclo, nel mio caso un for in questo modo:
Codice sorgente - presumibilmente C# / VB.NET |
for (int k = 0; k < scheda.Lenght-1; k++)
{....}
|
mi si presenta l'errore: Il nome 'scheda' non esiste nel contesto corrente
come posso risolvere questo problema? grazie per l'attenzione.
Ultima modifica effettuata da microprocessore il 12/11/2009 alle 16:23 |
|
Gianluca87 (Ex-Member)
Expert
Messaggi: 300
Iscritto: 16/11/2008
|
Ciao potresti scrivere qualche dettaglio in +?
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
di solito nasce questo problema quando non dichiari una struttura pubblica.
ma strano. non credo che la struttura necessiti di questo.
ma prova ugualmente
Codice sorgente - presumibilmente C++ |
public struct Scheda { public int var1; public int var2; }
|
Ultima modifica effettuata da Thejuster il 13/11/2009 alle 8:46
|
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
Postato originariamente da Gianluca87:
Ciao potresti scrivere qualche dettaglio in +? |
sì. io ho la seguente procedura:
Codice sorgente - presumibilmente C# / VB.NET |
static void fusione (tipo_struct []v1, tipo_struct []v2)
{
tipo_struct [] scheda=new tipo_struct [v1.Lenght+v2.Lenght];
}
|
successivamente vado nel main è digito:
Codice sorgente - presumibilmente C# / VB.NET |
fusione(squadra1, squadra2);
//squadra1 e squadra2 sono dei vettori di tipo_struct dichiarati prima
for (int k=0; k<scheda.Lenght; k++)
{....}
|
per Thejuster:appena posso provo a fare come mi hai suggerito e ti faccio sapere. Ultima modifica effettuata da microprocessore il 13/11/2009 alle 11:14 |
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
Postato originariamente da Thejuster:
di solito nasce questo problema quando non dichiari una struttura pubblica.
ma strano. non credo che la struttura necessiti di questo.
ma prova ugualmente
Codice sorgente - presumibilmente C++ |
public struct Scheda { public int var1; public int var2; }
|
|
ho dichiarato lo struct scheda prima del main.
il problema sparisce, ma queesto perchè il codice mi legge la struttura scheda, non il vettore della procedura infatti mi da più di un errore |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Postato originariamente da microprocessore:
Postato originariamente da Gianluca87:
Ciao potresti scrivere qualche dettaglio in +? |
sì. io ho la seguente procedura:
Codice sorgente - presumibilmente C# / VB.NET |
static void fusione (tipo_struct []v1, tipo_struct []v2)
{
tipo_struct [] scheda=new tipo_struct [v1.Lenght+v2.Lenght];
}
|
successivamente vado nel main è digito:
Codice sorgente - presumibilmente C# / VB.NET |
fusione(squadra1, squadra2);
//squadra1 e squadra2 sono dei vettori di tipo_struct dichiarati prima
for (int k=0; k<scheda.Lenght; k++)
{....}
|
per Thejuster:appena posso provo a fare come mi hai suggerito e ti faccio sapere. |
E' ovvio che se dichiari scheda dentro fusione, essa non è visibile al di fuori della funzione. Essendo una variabile locale e non globale la sua vita inizia e termina con il corpo di fusione.
x Thejuster: confondi la variabile col suo tipo... |
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
quindi cosa dovrei fare?
Ultima modifica effettuata da microprocessore il 13/11/2009 alle 15:54 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Per prima cosa, torna a studiarti gli ambiti di visibilità delle variabili
Poi, o dichiari scheda fuori da fusione, ma in questo caso sarebbe inutile anche l'esistenza della funzione; oppure cambi il tipo restituito da fusione e le fai restituire il valore scheda ("return scheda;").
|
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
se ti ho capito bene andrebbe cambiata la procedura in funzione, quindi prima del main ho fatto così:
Codice sorgente - presumibilmente C# / VB.NET |
//funzione
static esemplare fusione(esemplare[] v, esemplare[] v1)
{
esemplare[] v2 = new esemplare[v.Length + v1.Length];
return v2;
}
|
e nel main così:
Codice sorgente - presumibilmente Plain Text |
//creo vettore unico
esemplare[]scheda=fusione(squadra1, squadra2);
|
esemplare è il tipo dello struct.
ma ho ancora dei problemi... mi compaiono questi errori:
Errore 1 Impossibile convertire implicitamente il tipo 'Equipe_ricercatori.Program.esemplare[]' in 'Equipe_ricercatori.Program.esemplare'
Errore 2 Impossibile convertire implicitamente il tipo 'Equipe_ricercatori.Program.esemplare' in 'Equipe_ricercatori.Program.esemplare[]'
Errore 3 'System.Array' non contiene una definizione di 'Lenght' e non è stato trovato alcun metodo di estensione 'Lenght'che accetta un primo argomento di tipo 'System.Array'. Probabilmente manca una direttiva using o un riferimento a un assembly.
Errore 4 'System.Array' non contiene una definizione di 'Lenght' e non è stato trovato alcun metodo di estensione 'Lenght'che accetta un primo argomento di tipo 'System.Array'. Probabilmente manca una direttiva using o un riferimento a un assembly.
Errore 5 Impossibile applicare l'operatore '>' a operandi di tipo 'gruppo di metodi' e 'int'
Errore 6 Impossibile convertire implicitamente il tipo 'string' in 'int'
Errore 7 Impossibile convertire implicitamente il tipo 'int' in 'string'
Ultima modifica effettuata da microprocessore il 13/11/2009 alle 16:28 |
|