Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET]Errore con la dichiarazione di variabili Public
Forum - C# / VB.NET - [VB.NET]Errore con la dichiarazione di variabili Public

Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Segnala al moderatore
Postato alle 12:47
Sabato, 25/09/2010
Questo topic è stato chiuso dal moderatore

Ciao a tutti,
Da poco mi sono avvicinato alla programmazione .net e già ho incontrato delle difficoltà :rofl:.
Premetto che uso SharpDevelop come IDE... Ho creato un nuovo form , chiamato MainForm , con delle variabili public :
Codice sorgente - presumibilmente VB.NET

  1. Public Partial Class MainForm
  2.     Public stringa() As String
  3.     Public Max As  Integer
  4.     Public Sub New()
  5.  
  6.         Me.InitializeComponent()
  7.  
  8.     End Sub ...


e fin qui tutto ok ... creo un altro form ,nello stesso pregetto , così
Codice sorgente - presumibilmente VB.NET

  1. Public Partial Class Test
  2.     Dim frmMenu AS New MainForm
  3.     Public Sub New()
  4.  
  5.         Me.InitializeComponent()
  6.  
  7.     End Sub ...


poi, quando cerco di "usare"  le variabili "Max" e "stringa()" ricevo l'errore : " System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto". Più precisamente, l'esecuzione si blocca nella riga di codice:
Codice sorgente - presumibilmente Plain Text

  1. parola_label.Text = frmMenu.stringa(i)


Gazie
p.s. Se ho sbagliato nel postare chiedo scusa , è la prima volta che apro una discussione :)


"Il sapere umano appartiene al mondo"
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 13:14
Sabato, 25/09/2010
L'errore si verifica solo con stringa(), perchè questa variabile è un array, ossia un tipo reference e come tale è necessario che sia inizializzato prima di essere usato. Puoi inizializzare l'array nella sua dichiarazione specificano il suo limite superiore:
Codice sorgente - presumibilmente C# / VB.NET

  1. Public stringa(9) As String


oppure assegnargli il riferimento ad un nuovo oggetto:
Codice sorgente - presumibilmente C#

  1. Public stringa() As String = New String() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


Infatti tu hai usato New per inizializzare la variabile frmMenu.

Max, al contrario, è un tipo value e per sua stessa natura non può generare quel tipo di eccezione.

Vedi anche:
http://totemslair.org/guide/viewchapter.php?guida=vb&id=6
http://totemslair.org/guide/viewchapter.php?guida=vb&id=11


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 15:09
Sabato, 25/09/2010
Grazie mille per la risposta e per i link ,Totem,appena posso ti faccio sapere :k:

Ultima modifica effettuata da jack92 il 25/09/2010 alle 15:10


"Il sapere umano appartiene al mondo"
PM
Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Up
-1
Down
V
Segnala al moderatore
Postato alle 19:04
Sabato, 25/09/2010
Ho risolto dichiarando le variabili in un Modulo :D e dando una dimensione al vettore, come aveva suggerito Totem


"Il sapere umano appartiene al mondo"
PM