Avvio programma e memoria occupata

martedì 07 marzo 2006 - 08.00

escaflowne Profilo | Junior Member

Ciao a tutti,
ho un dubbio che, spero, possiate delucidarmi. Per poter interagire con diverse form, nel mio progetto, ho scelto la soluzione di dichiarere le variabili a livello di modulo in questo modo:

Public principale As New principale
Public newMdiChildSx As New Calendario
Public new7G As New setteG
Public newMese As New meseView
Public contattiDett As New contattiAdd
Public newContatti As New elencoContatti
Public elencoBanche As New elencoBanche
Public formLog As New formLog
Public adminLog As New adminLog

Poi le richiamo, le nascondo, le chiudo, facendo riferimento al modulo.nomeVariabile

Ora, facendo il debug, c'è un comportamento strano, sembra che, ancor prima di visualizzare la form di partenza, esegua il codice presente in varie parti delle diverse form (es. form load, o nel caricamento di alcuni componenti)
E' una conseguenza del mio modo di operare?
C'è un modo per risolvere la questione?
La cosa strana è, anche, che sembra caricare tutte le form, cosa che non dovrebbe fare (ed infatti mi occupa un sacco di spazio già all'avvio, spazio che si mantiene costante durante tutti gli usi del programma)

Grazie a tutti

Ciciu Profilo | Senior Member

Ciao.
Dunque, per quanto ne so, facendo così stai già ISTANZIANDO l'oggetto, e quindi il CLR fa partire i vari costruttori, creando, di fatto, la form...

Probabilmente, quello che vuoi fare è creare le variabili, senza però istanziarle subito...

Mi spiego :

Dim X as new Object - Crea la variabile X e la associa ad un oggetto, istanziandolo.

Dim X as Object - Dichiara la varabile X di tipo object. Non esiste (ancora) oggetto istanziato.
X = new Object - La variabile viene associata ad un'istanza dell'oggetto Object. Parte il costruttore.

Spero di essere stato chiaro....

Fabio G

PS - Per i Guru del forum : come sempre... Correggetemi se sbaglio !

Fabio G

escaflowne Profilo | Junior Member

perfettamente chiaro.
Quindi, se ho capito bene, mi conviene, nel modulo, limitarmi a dichiarare la variabile
Public new7G As setteG

poi, laddove la richiamo devo istanziarla con
new7G = new setteG

perfetto. Ti ringrazio!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5