Chapter13QuickReference To Do this Write a destructor Write a method whose name is the same as the name of the class and is prefixed with a tilde (~). The method must not have an access modifier (such as public) and cannot have any parameters or return a value. For example: class Example { ~Example() { . } } Call a destructor You can't call a destructor. Only the garbage collector can call a destructor. Force garbage collection Call System.GC.Collect. Release a resource at a known point in time Write a disposal method (a method that disposes of a resource) and call it explicitly from the program. For example: class TextReader { . public virtual void Close() { . } } class Example { void Use() { TextReader reader = .; // use reader reader.Close(); } } To Do this Release a resource at a known point in time in an exception-safe manner Release the resource with a using statement. For example: class TextReader : IDisposable { . public virtual void Dispose() { // calls Close } public virtual void Close() { . } } class Example { void Use() { using (TextReader reader = .) { // use reader } } } . Chapter 13 Quick Reference To Do this Write a destructor Write a method whose name is