Domanda

sto guardando un po 'di codice di vb.net Ho appena ereditato, e non riesco a capire il motivo per cui lo sviluppatore originale avrebbe fatto questo.

In sostanza, ogni classe "Dominio" è un insieme di proprietà. E ognuno implementa IDisposable.Dispose, e sovrascrive Finalize (). Non v'è alcuna classe base, in modo che ogni solo dalle estensioni oggetto.

smaltimento imposta ogni var privato a nulla, o chiama _private.Dispose quando la proprietà è un altro oggetto di dominio. C'è un private var che traccia lo stato disposto, e l'ultima cosa di Dispose è GC.SuppressFinalize (Me)

Finalizza chiama semplicemente Me.Dispose e MyBase.Finalize.

Quali sono i vantaggi di questo? Alcun danno? Non ci sono risorse non-gestito, senza connessioni db, niente che sembrerebbe bisogno di questo.

È stato utile?

Soluzione

Questo mi sembra essere un modello VB6.

Sono pronto a scommettere il ragazzo stava venendo direttamente da VB6, forse nei giorni precedenti di .NET quando questi modelli non sono state ampiamente compresi.

C'è inoltre è un caso sono stati impostazione un riferimento nterno a nulla è utile in una chiamata di disporre: quando l'elemento è contrassegnato come WithEvents. Senza questo, si rischia di avere una gestione degli eventi oggetto non raccolti quando in realtà non dovrebbe fare più così.

Altri suggerimenti

Sembrerebbe a me che questo è qualcosa che non è necessario a tutti, soprattutto senza le risorse delle Nazioni Unite gestiti e le connessioni dati.

Se vi capita di essere in grado di disinfettare e inserisci il codice potremmo essere in grado di ottenere un po 'più di comprensione, ma realisticamente non riesco a vedere la necessità di esso.

A seconda delle dimensioni degli oggetti, e la frequenza con cui vengono creati / distrutto, potrebbe essere quello di garantire GC può accadere il più presto possibile.

Può darsi, che questo modello è stato utilizzato in altri progetti e continua su senza capire perché è stato utilizzato in primo luogo. scimmia Giardinieri

L'unico motivo che ho potuto vedere per questo - e questo è discutibile nel migliore dei casi - è se queste cose vengono creati e smaltiti superiore nella "catena alimentare" e non v'è un potenziale di alcune di queste classi di dominio per avere sia una risorsa limitata o non gestito a un certo punto.

Anche questo è abbozzato ... suona come qualcuno è venuto da un ambiente gestito e stava cercando il .NET equivalente a gestire la vostra memoria ed è venuto attraverso l'interfaccia IDisposable.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top