• 11 Marzo 2008
  • 1 Stella2 Stelle3 Stelle4 Stelle5 Stelle Nessun voto

Il metodo Finalize

Il metodo Finalize viene usato in C# ed è in pratica il distruttore di una classe.

E’ ereditato direttamente dalla classe Object, quindi è disponibile in ogni classe che andremo a creare.

E’ vietato però scriverlo come si farebbe per gli altri metodi, cioè:

class Man
{
void Finalize()
{
//nothing...
}
}

Per scriverlo, infatti, bisogna usare una forma che è in pratica la stessa usata per i distruttori del C++:

class Man
{
~Man()
{
Console.WriteLine("Oggetto Man in fase di distruzione...");
}
}

Il metodo Finalize, però, non viene invocato sempre subito dopo che il riferimento ad un oggetto sia impostato a null, ma anche alcuni secondi o minuti dopo.

Per evitare questo possiamo usare un metodo statico della class GC, che rappresenta il Garbage Collector.

Vediamo un esempio:

static void Main(string[] args)
{
Man man = new Man();
man = null;
GC.Collect();
GC.WaitForPendingFinalizers();
Console.WriteLine("Programma in fase di terminazione");
Console.ReadLine();
}

GC.Collect() avvia il Garbage Collector alla raccolta degli oggetti non più utilizzati dal programma.

GC.WaitForPendingFinalizers() aspetta che il programma esegua tutti i metodi Finalize delle varie classi che sta eliminando.

In questo modo si ha la sicurezza che gli oggetti non utilizzati vengano cancellati realmente dalla memoria del computer.

RSScommenti all'articolo (0)

scrivi commento

Nome:

Email:

Url:




E’ con immensa soddisfazione che comunico che mondoinformatico.info ha superato i 1.000 articoli pubblicati!

Ebbene si, sembra incredibile ma tantissimi di voi hanno scritto molti articoli, alcuni molto interessanti, altri meno ma tutti originali, unici e in tema.

Il traguardo…

Ultimi Articoli Commenti

Inserisci il tuo indirizzo e-mail per rimanere aggiornato sulle novità del sito.

  • SONDAGGIO
Che notizie vorresti trovare su mondoinformatico?
Visualizza risultati
  • CRITEO
  • CHATTING

utenti online

Ci sono attualmente 0 utenti e 4 ospiti collegati