C# LanguageCostruttori e Finalizzatori

introduzione

I costruttori sono metodi in una classe che vengono invocati quando viene creata un'istanza di quella classe. La loro principale responsabilità è quella di lasciare il nuovo oggetto in uno stato utile e coerente.

I distruttori / finalizzatori sono metodi di una classe invocati quando un'istanza viene distrutta. In C # raramente vengono scritti / utilizzati esplicitamente.

Osservazioni

C # non ha effettivamente distruttori, ma piuttosto Finalizzatori che usano la sintassi del distruttore di stile C ++. La specifica di un distruttore sovrascrive il metodo Object.Finalize() che non può essere chiamato direttamente.

A differenza di altri linguaggi con sintassi simile, questi metodi non vengono chiamati quando gli oggetti escono dall'ambito, ma vengono chiamati quando viene eseguito il Garbage Collector, che si verifica in determinate condizioni . Come tali, essi non sono garantiti per l'esecuzione in un ordine particolare.

I finalizzatori dovrebbero essere responsabili della pulizia solo delle risorse non gestite (puntatori acquisiti tramite la classe Marshal, ricevuti tramite p / Invoke (chiamate di sistema) o puntatori grezzi utilizzati all'interno di blocchi non sicuri). Per ripulire le risorse gestite, rivedere IDisposable, il pattern Dispose e l'istruzione using .

(Ulteriori letture: quando dovrei creare un distruttore? )

Costruttori e Finalizzatori Esempi correlati