Close method closes the object and prevent your code from using it, but it is still in the memory.
Dispose method removes that object from the memory and free the allocated memory space.
Finalize method used in try ... catch ... statement in order to write code that will be executed wether an error occured or not.