microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
Postato originariamente da Il Totem:
Postato originariamente da microprocessore:
Postato originariamente da Il Totem:
Un modulo è sempre accessibile a tutti i forms; questo perchè:
- Non può essere dichiarato Private a meno che non sia nidificato;
- Di default è Friend, e quindi accessibile a tutti i componenti dell'applicazione.
Puoi comunque usare Public per renderne più chiaro lo scopo. |
nel form1 ho la seguente procedura:
Codice sorgente - presumibilmente C# / VB.NET |
public void carico()
{
...sottoprogramma...
}
|
nel form2 lo richiamo
Codice sorgente - presumibilmente C# / VB.NET |
public secondoform()
{
InitializeComponent();
carico();
}
|
ma mi dice che il nome "carico" non esiste nel contesto corrente |
Per prima cosa, hai ignorato quello che abbiamo detto fin'ora, dato che non ci sono moduli nel tuo sorgente. In C#, comunque, sono classi statiche (static class).
Poi, ti sei risposto da solo. Infatti, hai scritto che nel form1 hai la procedura carico(), e la richiami dal form2. Ora, che tu possa pensare che il compilatore "sappia" dove sta la definizione di carico() è certamente una sovrastima della potenza dell'elaboratore, che, seppur veloce, è molto stupido. E' come se cercassi nell'elenco degli studenti di una classe uno studente che sta in un'altra classe: ovviamente non lo troverai. E dato che in C# non esistono le istanze di default dei form e il namespace My, l'unica soluzione è dichiarare variabili e/o metodi in un modulo.
Codice sorgente - presumibilmente C++ |
static class Generale { public void carico() {} }
|
|
scusa l'ignoranza xD ma le procedure e le funzioni non sono moduli? Ultima modifica effettuata da microprocessore il 31/12/2009 alle 11:29 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Postato originariamente da microprocessore:
scusa l'ignoranza xD ma le procedure e le funzioni non sono moduli? |
Ma, dico io, dove studiate???? Dove le sentite queste cose?? Per cosa l'ho scritta la guida??
Procedure e funzioni sono metodi. I metodi fanno qualcosa, sono sottoprogrammi.
I moduli sono classi statiche, quindi non istanzabili, ma pur sempre CLASSI.
E' evidente che se ti scrivo:
Codice sorgente - presumibilmente C# / VB.NET |
Dim S As String = "Ciao"
S = S.SubString(0, 2)
|
S è diverso da String, che è diverso da SubString. SubString è una funzione, String una classe (un tipo base), mentre S è una variabile... |
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
E' evidente che se ti scrivo:
Codice sorgente - presumibilmente C# / VB.NET |
Dim S As String = "Ciao"
S = S.SubString(0, 2)
|
S è diverso da String, che è diverso da SubString. SubString è una funzione, String una classe (un tipo base), mentre S è una variabile... |
ho confuso modulo con metodo, mi sono incartato, so che sono metodi, ho solo confuso i metodi. i moduli non li conosco proprio.
il tuo esempio nn l'ho capito, io conosco solo il c#.
potresti farmi quell'esempio in linguaggio c# per favore?
Ultima modifica effettuata da Il Totem il 04/01/2010 alle 11:31 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Guarda che quel codice in C# è praticamente identico
Codice sorgente - presumibilmente C# / VB.NET |
String S = "Ciao";
S = S.SubString(0, 2);
|
|
|
microprocessore (Normal User)
Pro
Messaggi: 146
Iscritto: 18/06/2009
|
ok, grazie
|
|
Anie (Normal User)
Newbie
Messaggi: 11
Iscritto: 02/03/2010
|
Credo di non aver ben capito come fare a creare un modulo XD...
Perdona l'ignoranza =)
più che altro, visto che non voglio richiamare variabili ma un oggetto funziona allo stesso modo??
Sai che faccio, mo ci provo, se va va...altrimenti
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
Codice sorgente - presumibilmente C# |
//Classe Modulo1 con funzione Test reggiungibile da qualsiasi parte //dal sorgente. public class Modulo1 { public static string Test() { return "evviva"; } } //Secondo Modulo pubblico public class Modulo2 { public static string Test() { return " ci sono riuscito"; } } public class Modulo3 { public void Main() { string tt1 = Modulo1.Test(); tt1 = tt1 + Modulo2.Test(); MessageBox.Show(tt1); } }
|
Ultima modifica effettuata da Thejuster il 03/03/2010 alle 8:51
|
|
Anie (Normal User)
Newbie
Messaggi: 11
Iscritto: 02/03/2010
|
quindi devo usare le classi hmmmmm
|
|