Domanda Risolto Distruttori in C#

  • Autore discussione Utente cancellato 275412
  • Data d'inizio
U

Utente cancellato 275412

Ciao sto seguendo alcune guide sui distruttori ma proprio non li capisco. Non capisco quando vengono eseguiti e sto scrivendo una serie di programmi per esercitarmi e questo è con i distruttori:
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1.Name1
{
    class Auto
    {
        public Auto()
        {
            Console.WriteLine("Construttore");
        }
        static Auto()
        {
            Console.WriteLine("Costruttore statico");
        }
        public void Print()
        {
            Console.WriteLine("print");
        }
        ~Auto()
        {
            Console.WriteLine("distruttore");
        }
    }
}

C#:
using System;
using System.IO;
using ConsoleApp1.Name1;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Auto volvo = new Auto();
            volvo.Print();

        }
    }
}
Perché non viene eseguito il distruttore?
 
Perché non viene eseguito il distruttore?
Il distruttore (o finalizzatore) viene eseguito correttamente nel tuo codice e distrugge le istanze della classe Auto quando non sono più necessarie.

Nel .NET Framework il garbage collector dealloca automaticamente la memoria occupata dagli oggetti non più utilizzati. A meno che tu stia utilizzando delle risorse unmanaged non hai mai bisogno di utilizzare un finalizzatore.
 
Ok e poi l'operatore as serve per type casting? perchè non lo sto capendo proprio