Ho visto così tante volte gli sviluppatori che utilizzano un oggetto monouso in linea, ad esempio here. Con linea intendo:È sicuro creare e utilizzare un oggetto monouso in linea?
var result = new DataTable().Compute("1 + 4 * 7", null);
So che il metodo Dispose
non sarà chiamato, ma dal momento che nessun riferimento è ritenuta l'oggetto, come sarà il garbage collector gestirlo? È sicuro usare un oggetto monouso del genere?
Nel mio esempio ho utilizzato un DataTable
perché è l'unico esempio concreto che ho trovato, ma la mia domanda si applica agli oggetti monouso in generale. Non li uso personalmente in questo modo, volevo solo sapere se sono gestiti diversamente dal GC se vengono utilizzati in questo modo.
Sebbene questo non risponda alla tua domanda generale, parla al tuo esempio http://stackoverflow.com/questions/913228/should-i-dispose-dataset-and-datatable – hatchet
Questo snippet è stato scritto da uno smart programmatore che sapeva che DataTable non ha nulla usa e getta e in realtà non implementa Dispose(). Molti programmatori .NET sono molto a disagio a riguardo. Quindi, non farlo in questo modo, non diventa molto più brutto quando usi l'istruzione * using *. Puoi stare bene senza mai sbagliare. –