Differenza Tra Dispose () E Finalize ()

Sommario:

Differenza Tra Dispose () E Finalize ()
Differenza Tra Dispose () E Finalize ()

Video: Differenza Tra Dispose () E Finalize ()

Video: Differenza Tra Dispose () E Finalize ()
Video: Завершить vs Удалить | Вопросы для собеседования по C # 2024, Novembre
Anonim

Differenza chiave: dispose () vs finalize ()

La differenza fondamentale tra dispose () e finalize () è che dispose () deve essere invocato esplicitamente dal programmatore mentre finalize () viene invocato dal garbage collector prima di distruggere l'oggetto.

Il dispose () è un metodo per chiudere o rilasciare risorse non gestite come file, flussi detenuti da un oggetto. Finalize è un metodo per eseguire operazioni di pulizia su risorse non gestite detenute dall'oggetto corrente prima che l'oggetto venga distrutto.

CONTENUTI

1. Panoramica e differenza fondamentale

2. Cos'è dispose ()

3. Cosa è finalize ()

4. Somiglianze tra dispose () e finalize ()

5. Confronto affiancato - dispose () vs finalize () in forma tabulare

6. Sommario

Cos'è dispose ()?

Uno dei vantaggi più importanti di. NET framework è che fornisce la garbage collection automatica. Rilascia automaticamente la memoria degli oggetti non utilizzati. Nei linguaggi di programmazione come C e C ++, il programmatore deve gestire la gestione della memoria da solo. Ma in linguaggi come C # che si basa su. NET framework fornisce il Garbage Collector. Aiuta a gestire la memoria. Non può essere utilizzato per rilasciare le risorse di memoria non gestite. Il metodo dispose () può essere utilizzato per eseguire questa operazione.

Differenza tra dispose () e finalize ()
Differenza tra dispose () e finalize ()

Il metodo dispose () può essere utilizzato per rilasciare risorse come connessioni a database, gestori di file, ecc. Questo metodo non viene chiamato automaticamente. Pertanto, il programmatore dovrebbe implementare questo metodo. Non appena viene richiamato questo metodo, viene rilasciata la memoria per la particolare risorsa non gestita. Questo metodo è dichiarato nell'interfaccia IDisposeable.

Cos'è finalize ()?

Il metodo finalize viene chiamato solo dal garbage collector quando il riferimento a un oggetto non viene ulteriormente utilizzato. Questo metodo viene chiamato appena prima di distruggere l'oggetto. Questo metodo è implementato con l'aiuto del distruttore. Il metodo finalize è definito nella classe java.lang.object. Questo metodo è dichiarato protetto. Non è dichiarato pubblico per evitare l'accesso da parte delle altre classi. Nel complesso, il metodo finalize può ridurre al minimo le prestazioni del programma perché non libera la memoria istantaneamente.

Qual è la somiglianza tra dispose () e finalize ()?

Sia dispose () che finalize () possono essere utilizzati per liberare la memoria allocata per una risorsa non gestita

Qual è la differenza tra dispose () e finalize ()?

Articolo diff. Al centro prima della tabella

dispose () vs finalize ()

Il dispose () è un metodo per chiudere o rilasciare risorse non gestite come file, flussi detenuti da un oggetto. Finalize è un metodo per eseguire operazioni di pulizia su risorse non gestite detenute dall'oggetto corrente prima che l'oggetto venga distrutto.
Obbiettivo
Il metodo dispose viene utilizzato per liberare le risorse non gestite quando viene richiamato. Il metodo finalize viene utilizzato per liberare le risorse non gestite prima che l'oggetto venga distrutto.
Interfaccia o classe definita
Il dispose () è definito nell'interfaccia IDisposable interface. Finalize () è definito nella classe java.lang.object.
Metodo di invocazione
Il metodo dispose viene richiamato dal programmatore. Il metodo finalize viene richiamato dal garbage collector.
Identificatore di accesso
Il metodo di smaltimento è pubblico. Il metodo finalize è protetto.
Velocità
Il metodo dispose viene richiamato immediatamente. Il metodo finalize viene invocato lentamente.
Prestazione
Lo smaltimento non ridurrà al minimo le prestazioni del programma. Il metodo finalize potrebbe ridurre al minimo le prestazioni del programma.

Riepilogo: dispose () vs finalize ()

Questo articolo ha discusso la differenza tra i metodi dispose e finalize in C #. La differenza tra dispose () e finalize () è che dispose () deve essere invocato esplicitamente dal programmatore mentre finalize () viene invocato dal garbage collector prima di distruggere l'oggetto.

Raccomandato: