2. Finalize() can NOT be overridden or called in C#.
3. Since, Finalize() is called by the Garbage Collector, it is non-deterministic.
4. Dispose() has to be implemented in classes implementing IDispose interface.
5. Its the right place for freeing-up unmanaged resources like file, handles, and connections etc.
6. Dispose() method is called explicitly in the code itself.
7. Dispose() method is automatically called (for objects which implement IDispose), when used in a "using" statement.
Thanks,
Nitin Sharma