Oppure

Loading
12/11/09 15:22
microprocessore
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:
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 12/11/09 15:23
aaa
12/11/09 18:57
Gianluca87
Ciao potresti scrivere qualche dettaglio in +?
aaa
13/11/09 7:45
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

public struct Scheda {

public int var1;
public int var2;

}

Ultima modifica effettuata da Thejuster 13/11/09 7:46
mire.forumfree.it/ - Mire Engine
C# UI Designer
13/11/09 10:11
microprocessore
Postato originariamente da Gianluca87:

Ciao potresti scrivere qualche dettaglio in +?



sì. io ho la seguente procedura:
static void fusione (tipo_struct []v1, tipo_struct []v2)
{
      tipo_struct [] scheda=new tipo_struct [v1.Lenght+v2.Lenght];
}


successivamente vado nel main è digito:
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 13/11/09 10:14
aaa
13/11/09 14:01
microprocessore
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

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
aaa
13/11/09 14:39
Il Totem
Postato originariamente da microprocessore:

Postato originariamente da Gianluca87:

Ciao potresti scrivere qualche dettaglio in +?



sì. io ho la seguente procedura:
static void fusione (tipo_struct []v1, tipo_struct []v2)
{
      tipo_struct [] scheda=new tipo_struct [v1.Lenght+v2.Lenght];
}


successivamente vado nel main è digito:
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...
aaa
13/11/09 14:51
microprocessore
quindi cosa dovrei fare?
Ultima modifica effettuata da microprocessore 13/11/09 14:54
aaa
13/11/09 15:11
Il Totem
Per prima cosa, torna a studiarti gli ambiti di visibilità delle variabili :rotfl:
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;";).
aaa