Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [c#] variabili da form a form
Forum - C# / VB.NET - [c#] variabili da form a form - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 11:29
Giovedì, 31/12/2009
Testo quotato

Postato originariamente da Il Totem:

Testo quotato

Postato originariamente da microprocessore:

Testo quotato

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

  1. public void carico()
  2.         {
  3.            ...sottoprogramma...
  4.         }



nel form2 lo richiamo
Codice sorgente - presumibilmente C# / VB.NET

  1. public secondoform()
  2.         {
  3.             InitializeComponent();
  4.  
  5.             carico();
  6.         }



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++

  1. static class Generale
  2. {
  3.   public void carico() {}
  4. }



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
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:09
Sabato, 02/01/2010
Testo quotato

Postato originariamente da microprocessore:

scusa l'ignoranza xD ma le procedure e le funzioni non sono moduli?




:om::om:

:rotfl::rotfl:

:nono::nono:

:_doubt:

:grr::grr::grr:

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

  1. Dim S As String = "Ciao"
  2. 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...

PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 12:32
Sabato, 02/01/2010
Testo quotato

E' evidente che se ti scrivo:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim S As String = "Ciao"
  2. 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
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:31
Lunedì, 04/01/2010
Guarda che quel codice in C# è praticamente identico :_doubt:
Codice sorgente - presumibilmente C# / VB.NET

  1. String S = "Ciao";
  2. S = S.SubString(0, 2);


PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 13:53
Lunedì, 04/01/2010
ok, grazie

PM Quote
Avatar
Anie (Normal User)
Newbie


Messaggi: 11
Iscritto: 02/03/2010

Segnala al moderatore
Postato alle 21:00
Martedì, 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:hail:

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 8:51
Mercoledì, 03/03/2010
Codice sorgente - presumibilmente C#

  1. //Classe Modulo1 con funzione Test reggiungibile da qualsiasi parte
  2. //dal sorgente.
  3.  
  4. public class Modulo1 {
  5.  
  6. public static string Test() {
  7.  
  8. return "evviva";
  9. }
  10. }
  11.  
  12.  
  13. //Secondo Modulo pubblico
  14.  
  15. public class Modulo2 {
  16.  
  17. public static string Test() {
  18.  
  19. return " ci sono riuscito";
  20.  
  21. }
  22. }
  23.  
  24.  
  25. public class Modulo3 {
  26.  
  27. public void Main() {
  28.  
  29. string tt1 = Modulo1.Test();
  30.  
  31. tt1 = tt1 + Modulo2.Test();
  32.  
  33. MessageBox.Show(tt1);
  34. }
  35.  
  36. }



:rotfl:

Ultima modifica effettuata da Thejuster il 03/03/2010 alle 8:51


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Anie (Normal User)
Newbie


Messaggi: 11
Iscritto: 02/03/2010

Segnala al moderatore
Postato alle 15:10
Mercoledì, 03/03/2010
quindi devo usare le classi hmmmmm:-| :)

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo