Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Come e dove istanziare la classe?
lunedì 18 luglio 2005 - 21.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
temerario
Profilo
| Junior Member
58
messaggi | Data Invio:
lun 18 lug 2005 - 21:15
Salve,
in una pagina *.aspx.cs utilizzo in quasi ogni metodo
associato ad un evento della mia *.aspx alcuni metodi contenuti in una
classe da me implementata.
Mi conviene istanziare la classe a livello globale
e quindi nella dichiarazione delle variabili scrivere
1) MyClass x = new Myclass();
oppure in ogni metodo utilizzare
2) x = (new MyClass()).metodo
o altro?
Spero di essere stato chiaro.
In ogni caso, il nuovo oggetto di MyClass creato quando viene distrutto
in entrambi i casi(nel caso 1 all'uscita dalla pagina e nel caso 2
all'uscita dal metodo?
Vorrei per favore qualche chiarimento in merito e/o qualche
suggerimento.
GRAZIE
LudovicoVan
Profilo
| Junior Member
106
messaggi | Data Invio:
mar 19 lug 2005 - 00:30
Ciao temerario,
>in una pagina *.aspx.cs utilizzo in quasi ogni metodo
>associato ad un evento della mia *.aspx alcuni metodi contenuti
>in una classe da me implementata.
>Mi conviene istanziare la classe a livello globale
Se, come è probabile visto lo scenario, hai una classe contenente semplicemente metodi di supporto, potresti riscrivere la classe con soli membri statici e non dovresti istanziare alcunché.
Se invece ti occorresse davvero istanziare la classe, dovresti farlo nella singola pagina (anche perchè non so immaginare uno scenario in cui la classe deve essere istanziata ma... può essere istanziata al livello globale).
> In ogni caso, il nuovo oggetto di MyClass creato quando viene distrutto
In generale, quando non esistono più riferimenti a un oggetto, l'oggetto viene (entro un tempo breve ma non prevedibile) distrutto dal Garbage Collector e la memoria rilasciata.
Quindi, se metti l'oggetto in una variabile globale, la variabile (che contiene il riferimento) esiste per tutto il ciclo di vita dell'applicazione e l'oggetto viene rilasciato solo alla chiusura dell'applicazione stessa (cioè quando il processo asp_net viene terminato)... sempre a meno che nel frattempo in quella variabile non ci metti qualcos'altro, nel qual caso il riferimento all'oggetto originale sarebbe perso e l'oggetto verrebbe distrutto.
Analogamente, se metti un oggetto in una variabile locale, l'oggetto corrispondente esiste fino a che esiste il riferimento, per cui viene rilasciato alla chiusura del metodo... oppure prima, se nella variabile metti qualcos'altro.
Spero di averti dato un'idea. -LV
Torna su
Stanze Forum
Elenco Threads
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 !