Designing .NET Class Libraries is very good place that I am used to go here and study something anout .NET Framework. I also like Brad Abrams very much, because hi usually use very simple example to explain such hard thing like “dispose”, “finalizer”, “Manage code”, “CLR” … . In the speechDesigning for a Managed Memory World, Brad Abrams focus on “Gabage Colloection”, and talking about finalizer (seems he like this word more than destructor) , dispose( I think dispose is new concept in .NET framework, but it really hard to use it well).
He also talk about try {} ,excption{} and_ finally {}_ to manage the memory well. Nested use try{} finally {} can make exception more clear and can handle more condition even we don’t think it will happen.
static void CopyFile(file sourcdeFile, file destFile){ > > try { > > OpensourceFile(sourcdeFile); > > try { OpensourceFile(destFile); } > > finally { CloseFile(destFile); } > > } > > finally { CloseFile(sourcdeFile); } > > } > >
Important concept about GC (Gabage Collection) is when dispose, close, finalize call? The anwser is use code to call dispose and close; but GC will call finalize when this object should be collection back.