PDA

View Full Version : [vb.net] visibilità oggetti


IA-64
23-10-2009, 17:10
ciao a tutti mi sono avvicinato da poco alla proggrammazione "strutturata" ed orientata agli ogetti.
conosco abbastanza vb e mi volevo avvicinare a vb.net

adesso ho un problema credo banalissimo ma dal quale non riescio a uscire.

Public Partial Class MainForm
Public Sub New()
Me.InitializeComponent()
End Sub

Sub BTn_calcolaClick(sender As Object, e As EventArgs)
dim UIctr=New Controllore
...... assegno dei valori all'ogetto UIctr
if UIctr.validate then
dim StoreVal=New Storevalues
....
.... assegno dei valori all'ogetto Storeval

end if


End Sub

Sub Button1Click(sender As Object, e As EventArgs)
se storeval esiste stampa storeval.nome
End Sub
End Class


non riesco a vedere l'ogetto instaziato nella prima sub dalla seconda..illuminatemi?

grazie

euphyllia87
23-10-2009, 18:06
Mmmm... non vorrei dire una stupidata, magari mi ricordo male e correggetemi se non è così, ma in VB.net mi pare che due sub siano completamente 'a se stanti', ovvero non possono comunicare.

Poi io questa sintassi... non l ho mai vista in VB.net

dim StoreVal=New Storevalues


Direi più così....

Dim StoreVal AS New Storevalues

... la tua è molto C# Like :)
Comunque ho detto una cagata sulle SUB! Ora ricordo di aver sviluppato un Software tempo fa basato tutto sulle Sub... inguardabile! O_O

MarcoGG
24-10-2009, 12:23
ciao a tutti mi sono avvicinato da poco alla proggrammazione "strutturata" ed orientata agli ogetti.
conosco abbastanza vb e mi volevo avvicinare a vb.net

adesso ho un problema credo banalissimo ma dal quale non riescio a uscire.

Public Partial Class MainForm
Public Sub New()
Me.InitializeComponent()
End Sub

Sub BTn_calcolaClick(sender As Object, e As EventArgs)
dim UIctr=New Controllore
...... assegno dei valori all'ogetto UIctr
if UIctr.validate then
dim StoreVal=New Storevalues
....
.... assegno dei valori all'ogetto Storeval

end if


End Sub

Sub Button1Click(sender As Object, e As EventArgs)
se storeval esiste stampa storeval.nome
End Sub
End Class


non riesco a vedere l'ogetto instaziato nella prima sub dalla seconda..illuminatemi?

grazie

Per forza. Lo scope di storeval rimane nell'ambito della Sub in cui è definito.
In quel caso storeval viene creato nella Sub, e viene distrutto al termine della Sub stessa...
Per fare in modo di vederlo da ogni punto del codice all'interno della Form, lo devi dichiarare come Private a livello di Classe Form, poi lo puoi inizializzare e vedere da ogni Sub della Form stessa.

euphyllia87
24-10-2009, 12:27
Per forza. Lo scope di storeval rimane nell'ambito della Sub in cui è definito.
In quel caso storeval viene creato nella Sub, e viene distrutto al termine della Sub stessa...
Per fare in modo di vederlo da ogni punto del codice all'interno della Form, lo devi dichiarare come Private a livello di Classe Form, poi lo puoi inizializzare e vedere da ogni Sub della Form stessa.

Allora non avevo detto una cagata... ;) ricordavo bene.

MarcoGG
24-10-2009, 13:50
Allora non avevo detto una cagata... ;) ricordavo bene.

Sì, ma non è una prerogativa di VB.
In VB.NET una Sub non è altro che un metodo Void della classe in cui è inserita, perciò che sia VB, C#, o Java, la regola è la stessa. Ciò che viene dichiarato all'interno di un metodo e non ha riferimenti con i membri della classe, nasce e muore in quel metodo.

euphyllia87
24-10-2009, 13:52
Sì, ma non è una prerogativa di VB.
In VB.NET una Sub non è altro che un metodo Void della classe in cui è inserita, perciò che sia VB, C#, o Java, la regola è la stessa. Ciò che viene dichiarato all'interno di un metodo e non ha riferimenti con i membri della classe, nasce e muore in quel metodo.

Si questo lo so :) ma non mi ricordavo come funzionasse la Sub :), ora che mi hai ricordato essere un metodo void della classe principale (ovvero quella in cui è utilizzata) mi è chiaro :)